Скачиваний:
35
Добавлен:
02.05.2014
Размер:
1.45 Кб
Скачать
Program quick_sort;
const
max = 10000;
type myArray = array[0..max] of integer;
var dimension, i : integer;
arr, sortArray : myArray;

procedure sort( var arr : myArray; L, R : integer );
var i, j : integer;
temp, item : integer;
begin
i := L;
j := R;
item := arr[(L + R) div 2];
//write(' L = ');write(L);write(' R = ');write(R);write(' item = ');writeln(item);
repeat
while arr[i] < item do i := i + 1;
while item < arr[j] do j := j - 1;
if i <= j then begin
temp := arr[i];
arr[i] := arr[j];
arr[j] := temp;
i := i + 1;
j := j - 1;
end;
until i >= j;
if L < j then sort( arr, L, j );
if i < R then sort( arr, i, R );
end;

function quickSort( arr : myArray; size : integer ) : myArray;
begin
sort( arr, 0, size - 1 );
quickSort := arr;
end;

begin
writeln('Quick Sort.');
write('Enter array dimension: '); readln( dimension );
write('Enter '); write( dimension ); write(' elements: ');
for i := 0 to dimension-1 do
read(arr[i]);
sortArray := quickSort( arr, dimension );
write('Sorting array: ');
for i := 0 to dimension-1 do begin
write( sortArray[i] ); write(' '); end;
writeln;
writeln('Press "Enter" to continue...');
readln;
readln;
end.