Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ сортировка по алгоритму Фалька

Автор: мисс_граффити 21.06.2006 20:59

помогите пожалуйста.
есть процедура, использующая алгоритм Фалька для сортировки записей по двум младшим байтам неотрицательного ключа:

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;

как ее можно использовать, чтобы действительно что-то сортировала? и как можно увидеть результаты этой сортировки.
вообще ничего не понимаю sad.gif
спасибо.

Автор: WishMaster 22.06.2006 19:33

Я бы тебе посоветовал почитать FAQ ,раздел использование процедур и функций no1.gif

Автор: volvo 22.06.2006 19:39

WishMaster, тебе бы, кстати, тоже неплохо было почитать... Например, вопрос внимательно...

Что спрашивалось? Как проверить работоспособность процедуры. Процедура компилируется, все с этим в порядке. Флейм с твоей стороны? Напрасно. Это жестоко наказывается...

мисс_граффити, насчет процедуры... Я тестил ее в пошаговом режиме. Она без отключения оптимизации у меня не отрабатывала, как положено (массив Cep не заполнялся). Сегодня вечером попробую прогнать без оптимизации, хотя есть подозрение, что алгоритм нерабочий... Ты откуда это выкопала? Ссылкой не поделишься?

Автор: WishMaster 22.06.2006 20:17

Прошу глубочайшего извинения wub.gif

Автор: мисс_граффити 23.06.2006 20:43

Цитата(volvo @ 22.06.2006 16:39) *

мисс_граффити, насчет процедуры... Я тестил ее в пошаговом режиме. Она без отключения оптимизации у меня не отрабатывала, как положено (массив Cep не заполнялся). Сегодня вечером попробую прогнать без оптимизации, хотя есть подозрение, что алгоритм нерабочий... Ты откуда это выкопала? Ссылкой не поделишься?

Из книжки... Зубов, Шевченко. Структуры и методы обработки данных: Практикум в среде Delphi.
В принципе, где она была нужна - засунула другой вариант сортировки(работающий без проблем). С этой уже просто интересно разобраться.

Автор: мисс_граффити 23.06.2006 20:43

WishMaster, спасибо за совет smile.gif)) к сожалению, не нашла там ответа на свой вопрос.