core :: Comparator :: merge_sort
array
between from
and to
indicesWorst case: O(n lg n), average: O(n lg n)
var a = [5, 2, 3, 1, 4]
default_comparator.merge_sort(a, 0, a.length - 1)
assert a == [1, 2, 3, 4, 5]
# Merge-sort `array` between `from` and `to` indices
# Worst case: O(n lg n), average: O(n lg n)
#
# var a = [5, 2, 3, 1, 4]
# default_comparator.merge_sort(a, 0, a.length - 1)
# assert a == [1, 2, 3, 4, 5]
fun merge_sort(array: Array[COMPARED], from, to: Int) do
if from >= to then return
var mid = (to + from) / 2
merge_sort(array, from, mid)
merge_sort(array, mid + 1, to)
merge(array, from, mid, to)
end
lib/core/collection/sorter.nit:179,2--191,4