Реализации алгоритмов/Сортировка/Пирамидальная: различия между версиями
Содержимое удалено Содержимое добавлено
м Добавлена ссылка на Википедию к Rust |
|||
Строка 449:
<source lang="pascal">
procedure
procedure
{
Функция пробегает по пирамиде восстанавливая ее
Строка 458:
Процедура пробежит по всем потомкам и найдет нужное место для следующего элемента
}
var
begin
while index <
begin if (
if
break;
index :=
end;
end;
{ Основная функция }
var i:
begin
{ Собираем пирамиду }
for i := (
{ Пирамида собрана. Теперь сортируем }
for i :=
begin
end
end;
Строка 492 ⟶ 493 :
===Вариант № 2===
Примечание:
N — количество элементов массива
<source lang="pascal">
procedure HeapSort (var
var i:
{ Выполняет обмен значениями двух элементов массива sequence с указанными индексами }
procedure SwapItems (index_1, index_2: Word);
var
begin
end;
procedure Sort (Ns: integer);
var i,
begin
mid := Ns div 2;
for i := mid
begin
pos := i;
while pos <= mid do
begin
if
begin
if
if
begin
pos :=
end
else
pos := Ns
end
else if
begin
pos := Ns
end
Строка 542 ⟶ 543 :
begin
Sort(i);
end
end;
Строка 559 ⟶ 560 :
{ Процедура приведения массива к пирамидальному виду (to heap) }
procedure
var i: integer;
begin
Строка 574 ⟶ 575 :
{ Процедура для сдвига массива влево }
procedure
var i: integer;
temp: integer;
Строка 588 ⟶ 589 :
for i := n downTo 1 do
begin
end
END.
|