Фрагмент реализации процедуры быстрой сортировки строк на Паскале:
...
type
DataItem = string[20];
DataArray = array [1..20000] of DataItem;
...
procedure QsString(var item: DataArray; count:integer);
procedure qs(l, r: integer; var it:DataArray);
var
i, j: integer;
x, y: DataItem;
begin
i := l; j := r;
x := it[(l+r) div 2];
repeat
while it[i] < x do i := i+1;
while x < it[j] do j := j-1;
if i<=j then
begin
y := it[i];
it[i] := it[j];
it[j] := y;
i := i+1; j := j-1;
end;
until i>j;
if l<j then qs(l, j, it);
if l<r then qs(i, r, it);
end;
begin
qs(1, count, item);
end;
...
Проверено на задачах сайтов: http://acm.lviv.ua и http://acm.timus.ru
Осталось изменить под конкретную задачу размер строки и размер массива :boast:
Быстрая сортировка строк
Страница: 1
Сообщений 1 страница 1 из 1
Поделиться12007-06-18 17:31:55
Страница: 1