Сортировка по убыванию методом «ПУЗЫРЬКА»
Метод основан на том, что в процессе исполнения алгоритма более “легкие” элементы массива постепенно “всплывают”. Поочередно сравниваются два соседних элемента и, если правый элемент больше левого, то обмениваются.
Сначала самый большой элемент передвигается на первое место, затем второй по величине – на второе и т.д.
Программа вводит случайные числа из диапазона [0; 100), выводит массив, сортирует по убыванию
program sort2;
uses crt; {сортировака по убыванию}
const n=5;
var a: array [1..N] of integer;
i, j, temp : integer;
begin
for i:= 1 to n do
a[i]:=random(100); {заполнение массива}
for i:=1 to n do
write (a[i], ); {вывод исходного массива}
for i:=2 to n do
begin
for j:=n downto i do
If a[j-1] < a[j] then {правый элемент больше левого, то обмен }
begin
temp := a[ j-1]; a[ j-1] := a[ j ]; a[ j ] :=temp;
end;
end;
writeln;
writeln (′отсотированный массив′ );
for i:=1 to n do
write (a[i], );
end.
________________________________________________________________________
Второй способ сортировки методом "ПУЗЫРЬКА"
Метод пузырька (самый маленький – на последнее место, самый маленький из оставшихся – на предпоследнее …)
Блок сортировки:
for i:=1 to n-1 do
begin
for j:=1 to n-i do
If a[ j ] < a[ j+1 ] then
begin
temp:=a[j]; a[j]:=a[j+1]; a[j+1]:=temp;
end;
end;