Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,27 @@
|
|||
func merge(left, right) {
|
||||
var result = []
|
||||
while (left && right) {
|
||||
result << [right,left].min_by{.first}.shift
|
||||
}
|
||||
result + left + right
|
||||
}
|
||||
|
||||
func mergesort(array) {
|
||||
var len = array.len
|
||||
len < 2 && return array
|
||||
|
||||
var (left, right) = array.part(len//2)
|
||||
|
||||
left = __FUNC__(left)
|
||||
right = __FUNC__(right)
|
||||
|
||||
merge(left, right)
|
||||
}
|
||||
|
||||
# Numeric sort
|
||||
var nums = rand(1..100, 10)
|
||||
say mergesort(nums)
|
||||
|
||||
# String sort
|
||||
var strings = rand('a'..'z', 10)
|
||||
say mergesort(strings)
|
||||
Loading…
Add table
Add a link
Reference in a new issue