Var Mas:array[1..N] of integer;
i,j,k:integer; {i,j — змінні циклу, k — змінна, що фіксує праву границю впорядкування}
Rez:integer; {Rez — додаткова змінна для обміну елементів масиву між собою}
Flag:Boolean; {Flag — змінна, що фіксує, відбулася перестановка чи ні}
Begin
k:=1;
Repeat
Flag:=false; {Робимо припущення, що масив відсортований, а потім перевіряємо, чи правильним було це припущення, тобто чи немає серед елементів таких, що неправильно розташовані, якщо такі елементи будуть, то ми їх переставляємо і Flag присвоюємо значення true}
For і:=1 to N-k do
If Mas[i]>Mas[i+1]
then
begin
{Обмін елементів масиву через третю змінну}
Rez:=Mas[i];
Mas[і]:=Mas[i+1];
Mas[i+1]:=Rez;
Flag:=true;
End;
k:=k-1;
Until Flag = false;
End.
Другим методом сортування є
Program Selection;
Const N=20;
Var Mas:array[1..N] of integer;
і,j, Min,N_Min:integer;
Begin
For i:=1 to N-1 do
Begin
Min:=Mas[x]; {Зберігання еталону мінімуму}
N_Min:=i; {Зберігання номера мінімуму}
For j:=i+l to N do
If Mas[j]<Min
then begin
Min:=Mas[j]; {Перевизначекня еталону}
N_Min:=j; {Зберігання номеру еталону}
end;
{Обмін місцями мінімуму та першого елементу підмасиву}
Mas[N_Min]:=Mas[i];
Mas[i]:=Min;
End;
End.
Зверніть увагу, що пошук мінімуму в програмі організований стандартно, тобто перший елемент береться за еталон, а потім порівнюється з усіма останніми і, якщо новий елемент виявляється меншим за еталон, то еталон переприсвоюється. Крім цього, в алгоритмі запам’ятовується місце знаходження цього мінімального елемента для того, щоб після виходу з циклу можна було обміняти місцями знайдений мінімум і перший