[Home]
[Chapter]
[Contents]
[Previous Algorithm]
[Next Algorithm]


Linear probing sort


procedure sort( var r : ArrayToSort; lo, up : integer ); var i, j : integer; r1 : ArrayToSort; begin r1 := r; for j:=lo to UppBoundr do r[j].k := NoKey; for j:=lo to up do begin i := phi(r1[j].k,lo,m); while r[i].k <> NoKey do begin if r1[j].k < r[i].k then begin r1[j-1] := r[i]; r[i] := r1[j]; r1[j] := r1[j-1] end; i := i+1; if i > UppBoundr then Error end; r[i] := r1[j] end; i := lo-1; for j:=lo to UppBoundr do if r[j].k <> NoKey then begin i := i+1; r[i] := r[j] end; for j:=i+1 to UppBoundr do r[j].k := NoKey; end;

C source (417.sort.c) Pascal source (417.sort.p)



© Addison-Wesley Publishing Co. Inc.