Записки программиста Программирование и не только

30Мар/100

Быстрая сортировка (Pascal)

В дополнении к ЭТОЙ теме.

procedure quickSort(l,h: integer);
var
	i,j,mid,tmp: integer;
begin
	i := l;
	j := h;
	mid := mArray[(l + h) div 2];
	repeat
		while mArray[i] < mid do inc(i);
		while mArray[j] > mid do dec(j);
		if (i < = j) then
		begin
			if (i < j) then
			begin
				tmp := mArray[i];
				mArray[i] := mArray[j];
				mArray[j] := tmp;
			end;
			inc(i);
			dec(j);
		end;
	until i > j;
	if l < j then quickSort(l, j);
	if i < h then quickSort(i, h);
end;