Отсортировать массив, заполненный случайными числами, по возрастанию. Для сортировки использовать метод «пузырька». Вывести на экран массив в исходном и отсортированном виде.
Сортировка методом пузырька заключается в том, что по массиву осуществляются множественные проходы. На каждом проходе очередной элемент сравнивается со следующим за ним. И если он больше (при сортировке по возрастанию), то элементы массива меняются местами.
Таким образом при первом проходе по массиву при сортировке по возрастанию последним в массиве оказывается самое большое значение. При следующем проходе на предпоследнем месте окажется максимальное из оставшихся чисел. Сравнивать последнее и предпоследнее числа нет смысла. Поэтому количество просматриваемых элементов массива на каждом проходе сокращается на 1. Количество проходов равно количеству элементов массива за вычетом единицы, т.к. происходит попарное сравнение.
Pascal
сортировка пузырьком паскаль
const
N = 10;
var
arr: array[1..N] of integer;
i, j, k: integer;
begin
randomize;
for i:=1 to N do begin
arr[i] := random(256);
write (arr[i]:4);
end;
writeln;
for i:=1 to N-1 do
for j:=1 to N-i do
if arr[j] > arr[j+1] then begin
k := arr[j];
arr[j] := arr[j+1];
arr[j+1] := k
end;
В Питоне при обмене значений переменных можно обойтись без буферной переменной. Это делается с помощью присваивания в одном выражении. Такая возможность существует, т.к. в Python перед присваиванием в подобных выражениях сначала формируются кортежи.
КуМир
алг сортировка пузырьком
нач
цел N = 10
цел таб arr[1:N]
цел i,j,k
нц для i от 1 до N
arr[i] := int(rand(0,100))
вывод arr[i], " "
кц
вывод нс
нц для i от 1 до N-1
нц для j от 1 до N-i
если arr[j] > arr[j+1] то
k := arr[j]
arr[j] := arr[j+1]
arr[j+1] := k
все
кц
кц
const N = 10; var arr: array[1..N] of integer; i, j, k: integer;
begin randomize; for i:=1 to N do begin arr[i] := random(256); write (arr[i]:4); end; writeln; for i:=1 to N-1 do for j:=1 to N-i do if arr[j] > arr[j+1] then begin k := arr[j]; arr[j] := arr[j+1]; arr[j+1] := k end;
В Питоне при обмене значений переменных можно обойтись без буферной переменной. Это делается с помощью присваивания в одном выражении. Такая возможность существует, т.к. в Python перед присваиванием в подобных выражениях сначала формируются кортежи.
КуМир
алг сортировка пузырьком нач цел N = 10 цел таб arr[1:N] цел i,j,k нц для i от 1 до N arr[i] := int(rand(0,100)) вывод arr[i], " " кц вывод нс нц для i от 1 до N-1 нц для j от 1 до N-i если arr[j] > arr[j+1] то k := arr[j] arr[j] := arr[j+1] arr[j+1] := k все кц кц