Sorting algorithms/Merge sort: Difference between revisions
Content deleted Content added
Thundergnat (talk | contribs) m →Dart: Re-add deleted header and language tags. |
|||
Line 1,529: | Line 1,529: | ||
sort(list.run(split))) |
sort(list.run(split))) |
||
}</lang> |
}</lang> |
||
=={{header|Easyprog.online}}== |
|||
<lang easyprog.online>subr merge |
|||
mid = left + sz |
|||
if mid > sz_data |
|||
mid = sz_data |
|||
. |
|||
right = mid + sz |
|||
if right > sz_data |
|||
right = sz_data |
|||
. |
|||
l = left |
|||
r = mid |
|||
for i = left to right - 1 |
|||
if r = right or l < mid and tmp[l] < tmp[r] |
|||
data[i] = tmp[l] |
|||
l += 1 |
|||
else |
|||
data[i] = tmp[r] |
|||
r += 1 |
|||
. |
|||
. |
|||
. |
|||
subr sort |
|||
sz_data = len data[] |
|||
len tmp[] sz_data |
|||
sz = 1 |
|||
while sz < sz_data |
|||
swap tmp[] data[] |
|||
left = 0 |
|||
while left < sz_data |
|||
call merge |
|||
left += sz + sz |
|||
. |
|||
sz += sz |
|||
. |
|||
. |
|||
data[] = [ 29 4 72 44 55 26 27 77 92 5 ] |
|||
call sort |
|||
print data[]</lang> |
|||
=={{header|Eiffel}}== |
=={{header|Eiffel}}== |