Bubble-sort array between from and to indices

Worst case: O(n^2), average case: O(n^2)

var a = [5, 2, 3, 1, 4]
default_comparator.bubble_sort(a, 0, a.length - 1)
assert a == [1, 2, 3, 4, 5]

Property definitions

core $ Comparator :: bubble_sort
	# Bubble-sort `array` between `from` and `to` indices
	# Worst case: O(n^2), average case: O(n^2)
	#
	#     var a = [5, 2, 3, 1, 4]
	#     default_comparator.bubble_sort(a, 0, a.length - 1)
	#     assert a == [1, 2, 3, 4, 5]
	fun bubble_sort(array: Array[COMPARED], from: Int, to: Int)
	do
		var i = from
		while i < to do
			var min = i
			var min_v = array[i]
			var j = i
			while j <= to do
				if compare(min_v, array[j]) > 0 then
					min = j
					min_v = array[j]
				end
				j += 1
			end
			if min != i then
				array[min] = array[i]
				array[i] = min_v
			end
			i += 1
		end
	end
lib/core/collection/sorter.nit:135,2--161,4