Sorting algorithms/Heapsort: Difference between revisions

m
Line 885:
sort_array (ar: ARRAY [INTEGER])
-- Sorts array 'ar' in ascending order.
require
not_empty: ar.count > 0
local
i, j, r, l, m, n: INTEGER
Line 901 ⟶ 903:
if l > 1 then
l := l - 1
m := ar.item ([l)]
else
m := ar.item ([r)]
ar.put[r] := (ar.item ([1), r)]
r := r - 1
if r = 1 then
ar.put (m, [1)]:=m
sorted := True
end
Line 918 ⟶ 920:
j > r
loop
if (j < r) and (ar.item ([j)] < ar.item ([j + 1)]) then
j := j + 1
end
if m < ar.item ([j)] then
ar.put[i]:= (ar.item ([j), i)]
i := j
j := j + i
Line 929 ⟶ 931:
end
end
ar.put[i]:= (m, i)
end
end
ensure
 
sorted: is_sorted(ar)
end
 
Anonymous user