Главная » Pascal, Исходники, Сортировка » Алгоритмы сортировки пузырьком
Ноя
24

Алгоритмы сортировки пузырьком

1-ый и наиболее эффективный алгоритм:

[sourcecode language=»css»]
procedure Bubble_1(m: Word);
var
Exch: Boolean;
i, j: Word;
Temp: Integer;

begin
Exch:=True; j:=1;
While Exch do
begin
Exch:=False;
for i:=1 to m-j do
if A[i] > A[i+1] then
begin
Temp:=A[i];
A[i]:=A[i+1];
A[i+1]:=Temp;
Exch:=True;
end;
Inc(j);
end;
end; { bubble_1 }
[/sourcecode]

Переменная Exch определяет произошла ли перестановка элементов: если да, то продолжить выполнение, иначе закончить выполнение алгоритма, так как все елементы отсортированы;
m — количество элементов массива А, который нужно отсортировать.

2-ой алгоритм:

[sourcecode language=»css»]
procedure Bubble_2(m: Word);
var
i, j: Byte;
Temp: Integer;

begin
for i:=m-1 downto 1 do
for j:=1 to i do
if A[j] > A[j+1] then
begin
Temp:=A[j];
A[j]:=A[j+1];
A[j+1]:=Temp;
end;
end; { bubble_2}
[/sourcecode]

Стоит также отметить, что пузырьковая сортировка обычно применяется в учебных целях, так как на практике есть и более эффективные алгоритмы сортировки. Пузырьковую сортировку используют к массивам с небольшим количеством элементов;





при большом числе элементов все недостатки этой сортировки становятся явными, т.е. время выполнения и число проходов.



Понравилась статья? Сделай приятно ее автору, поделись с друзьями:


Хотите получать обновления данного блога на EMail?

Введите адрес Почтового Ящика:




Подтвердите подписку в письме пришедшем на Почту, после чего начнете получить рассылку.