Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Аппроксимация выпуклой оболочки / SOURCE / Sort
.pas unit Sort;
{быстрая сортировка по убыванию}
interface
uses classes,WinTypes,List;
procedure SortPoints(first,last:integer; var g:ListP);
Implementation
procedure SortPoints(first,last:integer; var g:ListP);
var f,l: integer;
flag:boolean;
begin
f:=first;
l:=last;
flag:=true;
while f<>l do
begin
if g.PointsAndr[f,AndrList].x < g.PointsAndr[l,AndrList].x then
begin
g.Exchange(f,l);
flag:=not flag; end;
case flag of
true :inc(f);
false :dec(l);
end;
end;
if (f-first)>1 then SortPoints(first,l-1,g);
if (last-l)>1 then SortPoints(l,last,g);
end;
end.
{быстрая сортировка по убыванию}
interface
uses classes,WinTypes,List;
procedure SortPoints(first,last:integer; var g:ListP);
Implementation
procedure SortPoints(first,last:integer; var g:ListP);
var f,l: integer;
flag:boolean;
begin
f:=first;
l:=last;
flag:=true;
while f<>l do
begin
if g.PointsAndr[f,AndrList].x < g.PointsAndr[l,AndrList].x then
begin
g.Exchange(f,l);
flag:=not flag; end;
case flag of
true :inc(f);
false :dec(l);
end;
end;
if (f-first)>1 then SortPoints(first,l-1,g);
if (last-l)>1 then SortPoints(l,last,g);
end;
end.