Это алгоритм быстрой сортировки, входящий в библиотеку поставки стандартного 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 }
...

Меняем тип данных (везде, где нужно !!!) и размер и подключаем к своей программе.