Швидкі алгоритми сортування
Begin
b := a[i]; a[i] := a[j]; a[j] := b
End;
Procedure Hoare(L, R : Integer);
Var left, right : Integer;
x : Integer;
Begin
If L < R then begin
x := A[(L + R) div 2]; {вибір бар'єра x}
left := L; right := R ;
Repeat {зустрічний прохід}
While A[left] < x do Inc(left); {перегляд уперед}
While A[right] > x do Dec(right); {перегляд назад}
If left <= right then begin
Swap(left, right); {перестановка}
Inc(left); Dec(right);
end
until left > right;
Hoare(L, right); {сортуємо початок}
Hoare(left, R) {сортуємо кінець}
end
End;
Program QuickSort;
Const n = 100;
Var A : array[1..n] of Integer;