есть процедура, использующая алгоритм Фалька для сортировки записей по двум младшим байтам неотрицательного ключа:
Type zap=Record key:0..65535; k,y:real end;
chain=array of integer;
procedure SortWord (var x:array of zap; var cep:chain);
var a,b:array [0..255] of integer;
j,k,n:integer;
begin
n:=High(x)+1;
SetLength(cep,n+1);
for k:=0 to 255 do
a[k]:=-1;
for j:=0 to High(x) do
begin
k:=Lo(x[j].key);
if a[k]<0 then a[k]:=j
else cep[b[k]]:=j;
b[k]:=j
end;
j:=n;
for k:=0 to 255 do
if a[k]>-1 then
begin
cep[j]:=a[k];
a[k]:=-1;
j:=b[k];
end;
cep[j]:=-1;
j:=cep[n];
repeat
k:=Lo(x[j].key shr 8);
if a[k]<0 then a[k]:=j
else cep[b[k]]:=j;
b[k]:=j;
j:=cep[j];
until j<0;
j:=n;
for k:=0 to 255 do
if a[k]>-1 then
begin
cep[j]:=a[k];
j:=b[k]
end;
cep[j]:=-1
end;
как ее можно использовать, чтобы действительно что-то сортировала? и как можно увидеть результаты этой сортировки.
вообще ничего не понимаю
спасибо.