Var I,j:integer; buf:integer;
const x:mass=(5,-7,16,12,-5,22,-8,15,6,2);
Begin
{------печать исходного массива ----------}
for i:=1 to 10 do write(x[i],' ');
writeln;
{------сортировка массива по возрастанию-----}
for k:=10 downto 2 do {ищем max среди k эл-тов}
begin
p:=1; { пусть индекс max =1}
for i:=2 to k do {поиск индекса max}
if x[i]>x[p] then p:=i; {смена индекса max}
buf:=x[k] ; x[k] :=x[p] ; x[p] :=buf; {*}
end;
{---печать отсортированного массива массива -----}
for i:=1 to 10 do write(x[i],' ');
writeln;
End.
{*} поменяли местами элементы Xmax и Xк, т.е. переставим max элемент в конец массива на k-е место.
Пример 2 сортировки методом “Пузырька”
В целочисленном массиве Х(5; -7; 16; 12; -5; 22; -8; 15; 6; 2) расставить элементы в возрастающем порядке.
Напечатать в файл исходный и отсортированный массивы.
const n=10;
type mass=array[1..n] of integer;
Var I,j:integer; buf:integer;
const x:mass=(5,-7,16,12,-5,22,-8,15,6,2);
f:text;
Begin
Assign(f,’massiv.pas’);
Rewrite(f);
{------печать исходного массива ----------}
writeln(f,'исходный массив');
for i:=1 to n do
write(f, x[i],’ ‘);
writeln(f);
{------сортировка массива по возрастанию-----}
for j:=1 to n-1 do
or i:=1 to n-j do
if x[i]>x[i+1] then
begin
buf:=x[i]; x[i]:=x[i+1];
x[i+1]:=buf
end;
{---печать отсортированного массива массива -----}
writeln(f,'полученный массив ');
for i:=1 to n do begin
write(f,' x[',i,']=',x[i]);
if i=5 then writeln(f)
end;
writeln;
Close(f)
End.
Ответ в файле ’massiv.pas’:
исходный массив
5 -7 16 12 -5 22 -8 15 6 2
полученный массив
x[1]=-8 x[2]=-7 x[3]=-5 x[4]=2 x[5]=5
x[6]=6 x[7]=12 x[8]=15 x[9]=16 x[10]=22