Это алгоритм быстрой сортировки, входящий в библиотеку поставки стандартного Turbo Pascal.
К сожалению не у всех есть, поэтому по просьбе трудящихся выкладываем здесь.
...
const
max = 1000;
type
list = array[1..max] of integer;
var
data: list;
i: integer;
procedure quicksort(var a: list; Lo,Hi: integer);
procedure sort(l,r: integer);
var
i,j,x,y: integer;
begin
i:=l; j:=r; x:=a[(l+r) DIV 2];
repeat
while a[i]<x do i:=i+1;
while x<a[j] do j:=j-1;
if i<=j then
begin
y:=a[i]; a[i]:=a[j]; a[j]:=y;
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;
begin {quicksort};
sort(Lo,Hi);
end;
....
Вызов в теле программы:
...
quicksort(data, 1, n);
{ n - реальный размер массива <= max }
...
Меняем тип данных (везде, где нужно !!!) и размер и подключаем к своей программе.