Реализации алгоритмов/Сортировка/Пирамидальная: различия между версиями

Содержимое удалено Содержимое добавлено
Отмена правки 59710 участника 94.232.52.24 (обсуждение)
Нет описания правки
Строка 172:
end;
</source>
 
== Pascal (другой вариант) ==
Примечание:
Строка 235 ⟶ 234 :
</source>
 
 
== Pascal (третий вариант) ==
<source lang="pascal">
//процедура для перессылки записей
procedure swap(var x,y:integer);
var temp:integer;
begin
temp:=x;
x:=y;
y:=temp;
end;
 
//процедура приведения массива к пирамидальному виду (to pyramide)
procedure toPyr(var data:TArray; n:integer); //n - размерность массива
var i:integer;
begin
for i:=n div 2 downto 1 do begin
if 2*i<=n then if data[i]<data[2*i] then swap(data[i],data[2*i]);
if 2*i+1<=n then if data[i]<data[2*i+1] then swap(data[i],data[2*i+1]);
end;
end;
 
//процедура для сдвига массива влево
procedure left(var data:TArray; n:integer);
var i:integer;
temp:integer;
begin
temp:=data[1];
for i:=1 to n-1 do
data[i]:=data[i+1];
data[n]:=temp;
end;
 
//основная программа
for i:=n downto 1 do begin
topyr(a,i);
left(a,n);
end;
</source>
== Python ==