Блок-схема алгоритму: Фрагмент програми:
Program new;
Uses forms;
const n=20;
var a : array [1..n] of integer;
k : integer;
i, n, j : byte;
begin
{ введення елементів масиву А }
…………………………………..
for j : = 2 to n do
begin
i : = j-1;
k : = a[j] ;
while (i>0) and (k <= a[i]) do
begin
a[i+1] : = a[i];
i : = i –1;
end;
a[i+1] : = k;
end;
{ друк упорядкованого масиву А}
…………………………………………
end.
Масив ai , (i = 1, n) розміщається на тім же місці, після сортування впорядковуються по зростанню. Порівнюємо поточний елемент aj з aj-1 , aj-2 ... доки не виявимо місце між ai і ai+1 , куди потрібно вставити елемент aj. Тоді елементи ai+1 ... aj-1 просунемо на одне місце вперед (вверх) і помістимо новий елемент aj на ai+1 місце. Зручно поєднувати операції порівняння і переміщення, тому що елемент aj як би «проникає» на відведений йому рівень. Такий спосіб часто називають просіванням або зануренням.
Обмінне сортування методом «бульбашки»
Порівнюються між собою кожні сусідні елементи масиву і, у разі потреби, міняються місцями, тобто «найлегший» елемент, якби, спливає на поверхню. Потім цей рівень не розглядається, а оглядається рівень з другого до останнього, і знов найлегший із елементів, які залишились, спливає, і т.д.
Блок-схема алгоритму:Текст програми:
Begin
введення масиву
SL : = N;
repeat
t : = 0;
for j : = 1 to SL-1 do
if a[j] > a[j+1] then
begin
_ buf : = a[j+1];
+ a[j+1] : = a[j];
a[j] : = buf;
змінюємо місцями сусідні елементи
t : = j;
end;
номер впорядкованого рівня
SL : = t;
Until t = 0;
Вивід упорядкованого масиву