Сортировка методом перебора ("куча").

Суть метода состоит в следующем. Весь массив делится на две части. Слева будет находится отсортированная часть, а справа "куча" т.е. не отсортированный массив. Из "кучи" вбирается максимальный элемент затем он переставляется в первую ячейку, а элемент из первой ячейки на его место. После этого заполняется вторая ячейка. Массив опять перебирается и из оставшейся части снова выбирается максимальный элемент, который должен встать на место второго элемента, а второй элемент на его место и т.д. пока не переберется вся "куча".

program sortirovrk_puzir;

var

a:array [1..20] of integer;

k,i,j,max,p:word;

begin

заполнение массива

for i:=1 to 20 do

a[i]:=random(10);

вывод на монитор массива до обработки

write ('массив до обработки');

writeln;

for i:=1 to 20 do

write (a[i]);

сортировка массива

for i:=1 to 20 do begin

for j:=i to 20 do разделение массива на отсортированный и "кучу"

if a[j]>max then begin нахождение максимального элемента

max :=a[j]; запоминание максимального элемента

k:=j; запоминание индекса максимального элемента.

end;

p:=a[i]; перестановка элементов

a[i]:=a[k];

a[k]:=p;

m ax:=0; обнуление максимального значения

end;

write('массив после обработки');

writeln;

for i:=1 to 20 do

write(a[i]);

end.