Triedenie ? Sekvencné architektúry
Program P3 {nedeterministický heapsort}
declare
?: array [1 .. N] of integer
top: array [1 .. N] of boolean
always
? ? i: 1 ? i ? N ::
?[i] = 2i + 1 if y[2i + 1] > y[2i] ? 2i + 1 ? m ~
2i if ?(y[2i + 1] > y[2i] ? 2i + 1 ? m)
?
initially
? ? i: 1 ? i ? N :: top[i] = (2i > N) || y[i] = x[i] ?
? m = N
assign
y[m], y[1], m := y[1], y[m], m ? 1 if top[1] ? m > 1
|| top[1], top[?m/2?] := false, true if top[1] ? m > 2
? { usporiadanie y[?[i]] a y[i], ak top[2i] a top[2i + 1] }
? ? i: 1 ? i ? N/2::
y[?[i]], y[i], top[i], top[?[i]] :=
sort2(y[?[i]], y[i]), true, (2.?[i] > m)
if (2i ? m) ? ?top[i] ? top[2i] ? top[2i + 1] ?