Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:АВТИ информатика по паскалю / Metod1_2010 / INSORT / QUICKSOR
.PAS {Ўлбва п б®авЁа®ўЄ }
procedure QuickSort;{४габЁў п}
{б®авЁа®ўЄ ®в l-Ј® ¤® r-Ј®}
procedure Sort(l,r:index);
var i,j:index; x,w:integer;
begin
{гбв ®ўЄ Ја Ёж а §¤Ґ«ҐЁп}
i:=l; j:=r;
{ўлЎ®а Ў амҐа x}
x := a[(l+r) div 2];
{а §¤Ґ«ҐЁҐ н«Ґ¬Ґв®ў ®в-® x}
repeat
{Ї®ЁбЄ н«Ґ¬Ґв®ў ¤«п ®Ў¬Ґ }
while f(a[i]) < f(x) do i:=i+1;
while f(x) < f(a[j]) do j:=j-1;
if i<=j then
begin
{®Ў¬Ґ [i] Ё a[j] }
w:=a[i]; a[i]:=a[j]; a[j]:=w;
i:=i+1; j:=j-1
end
until i > j;
if l < j then Sort(l,j);
if i < r then Sort(i,r)
end;{Sort}
begin Sort(1,n)
end;{QuickSort}
procedure QuickSort;{४габЁў п}
{б®авЁа®ўЄ ®в l-Ј® ¤® r-Ј®}
procedure Sort(l,r:index);
var i,j:index; x,w:integer;
begin
{гбв ®ўЄ Ја Ёж а §¤Ґ«ҐЁп}
i:=l; j:=r;
{ўлЎ®а Ў амҐа x}
x := a[(l+r) div 2];
{а §¤Ґ«ҐЁҐ н«Ґ¬Ґв®ў ®в-® x}
repeat
{Ї®ЁбЄ н«Ґ¬Ґв®ў ¤«п ®Ў¬Ґ }
while f(a[i]) < f(x) do i:=i+1;
while f(x) < f(a[j]) do j:=j-1;
if i<=j then
begin
{®Ў¬Ґ [i] Ё a[j] }
w:=a[i]; a[i]:=a[j]; a[j]:=w;
i:=i+1; j:=j-1
end
until i > j;
if l < j then Sort(l,j);
if i < r then Sort(i,r)
end;{Sort}
begin Sort(1,n)
end;{QuickSort}
Соседние файлы в папке INSORT