Sorting algorithms/Merge sort: Difference between revisions

(Added Chipmunk Basic, Minimal BASIC and Quite BASIC)
Line 3,110:
 
<syntaxhighlight lang="text">
funcproc sort . d[] .
len tmp[] len d[]
sz = 1
while sz < len d[]
swap tmp[] d[]
left = 1
while left < len d[]
# merge
mid = left + sz - 1
if mid > len d[]
mid = len d[]
.
right = lenmid + d[]sz
if right > len d[]
d[i] right = tmplen d[l]
.
l = left
r = mid + 1
for i = left to right
if r > right or l <= mid and tmp[l] < tmp[r]
d[i] = tmp[rl]
l += 1
else
r + d[i] = 1tmp[r]
r += 1
.
.
left += sz2 +* sz
.
rightsz *= mid + sz2
.
if right > len d[]
right = len d[]
.
l = left
r = mid + 1
for i = left to right
if r > right or l <= mid and tmp[l] < tmp[r]
d[i] = tmp[l]
l += 1
else
d[i] = tmp[r]
r += 1
.
.
left += sz + sz
.
sz += sz
.
.
data[] = [ 29 4 72 44 55 26 27 77 92 5 ]
1,981

edits