Показать сообщение отдельно
  #2  
Старый 20.12.2010, 17:59
kalinochkind kalinochkind вне форума
Прохожий
 
Регистрация: 06.06.2010
Сообщения: 15
Репутация: 12
По умолчанию

Код:
const Sz=10;

type IArr=array [1..Sz] of integer;
var A: IArr;
procedure swap(var a,b: integer);
var v: integer;
begin
  v:=a;
  a:=b;
  b:=v
end;

procedure QuickSort(var A: IArr; n: integer);
  procedure sort(l,r: integer);
  var
    i,j: integer;
    w,x: integer;
  begin
    i:=l; j:=r;
    x:=A[(l+r) div 2];
    repeat
      while A[i]<x do Inc(i); // ищем первый элемент >= x
      while A[j]>x do Dec(j); // ищем последний элемент <= x
      if i<=j then
      begin
        swap(A[i],A[j]);
        Inc(i);
        Dec(j);
      end;
    until i>j;
    if l<j then sort(l,j);
    if i<r then sort(i,r)
  end;

begin
  sort(1,n)
end;
begin
//Чтение массива
  quicksort(a,sz);
//вывод массива
end;
Ответить с цитированием