Сортування вибором в Паскале
Відшукується максимальний елемент і переноситься в кінець масиву. Потім ця операція послідовно застосовується до всіх елементів крім останнього, оскільки він знаходиться на своєму остаточному місці.
Приклад 11.4. Сортувати за зростанням згенерований випадковим чином масив з 10 цілих чисел з використанням методу “заміни”
Текст програми
Program up_repl;
Uses crt;
Const n =10; k1=10; k2=2*k1+1;
Type vec=array[1..n] of integer;
Var a,b,c :vec;
k,i,j,f,m :integer;
ch :char;
l :Boolean;
Begin
Repeat
ClrScr;
Randomize;
Write("Исходый масив a[i]=");
For i:=1 to n do
Begin
f:=Random(k2);
a[i]:=k1-f;
Write(a[i]:3);
End;
Writeln;
b:=a;
For k:=1 to n do
Begin
m:=100;
For i:=1 to n do
If m>b[i] then
begin
m:=b[i];j:=i;
end;
b[j]:=100; c[k]:=m
end;
Write("Впорядкований масив c[i]=");
For i:=1 to n do Write(c[i]:3);
Readln;
ch:=ReadKey;
Until ch=#27;
End.
Результат роботи програми
Вихідний масив a[i]= 10 -5 -9 6 -5 7 -4 10 3 6
пУпорядоченный масив c[i]= -9 -5 -5 -4 3 6 6 7 10 10
Сортування обміном (метод бульбашки) в Паскале
Послідовно порівнюються пари сусідніх елементів xi і xi+1 і, якщо xi > xi+1 то вони переставляються. Потім процес повторюється для наступної пари і т.д.
Приклад 11.5. Сортувати за зростанням згенерований випадковим чином масив з 10 цілих чисел з використанням методу “бульбашки”
Текст програми
Program up_case;
Uses crt;
Const n =10; k1=10; k2=2*k1+1;
Type vec=array[1..n] of integer;
Var a,b :vec;
k,i,f,r :integer;
ch :char;
l :Boolean;
Begin
Repeat
ClrScr;
Randomize;
Write("Вихідний масив a[i]=");
For i:=1 to n do
Begin
f:=Random(k2);
a[i]:=k1-f;
Write(a[i]:3);
End;
Writeln;
b:=a;
Repeat
l:=true;
for i:=1 to n-1 do
If b[i]>b[i+1] then
Begin
r:=b[i];b[i]:=b[i+1]; b[i+1]:=r; l:=false;
End;
Until l;
("WriteУпорядкований масив b[i]=");
For i:=1 to n do Write(b[i]:3);
Readln;
ch:=ReadKey;
Until ch=#27;
End.
Результат роботи програми:
Вихідний масив a[i]= 6-9-10 6 5 4 -4 -1 0 10
пУпорядоченный масив b[i]=-10 -9 -4 -1 0 4 5 6 6 10
Сортування вставками в Паскале
Нехай перші k елементів вже відсортовані. Береться (k+1)-й елемент і розміщується серед k впорядкованих елементів так, щоб впорядкованими виявилися вже k+1 перших елементів. Цей метод застосовується при k 1 n-1.