June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
|
|
@ -1,15 +1,17 @@
|
|||
fun mergeSort(m):
|
||||
return m if m.size <= 1
|
||||
let middle = m.size / 2
|
||||
let left = merge(m[:middle])
|
||||
let right = merge(m[middle:]);
|
||||
if m.len <= 1: return m
|
||||
let middle = floor m.len / 2
|
||||
let left = merge(m[:middle])
|
||||
let right = merge(m[middle-1:]);
|
||||
|
||||
fun merge(left, right):
|
||||
let result = []
|
||||
while |left or right|.!empty:
|
||||
result ++ (left.shift() if |left <= right|.first ...
|
||||
else right.shift())
|
||||
result ++ left ++ right
|
||||
while not (left.isEmpty or right.isEmpty):
|
||||
if left[1] <= right[1]:
|
||||
result ++ left.shift()
|
||||
else:
|
||||
result ++ right.shift()
|
||||
result ++ left ++ right
|
||||
|
||||
let arr = [7, 6, 5, 9, 8, 4, 3, 1, 2, 0]
|
||||
print mergeSort arr
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue