- •Завдання (інструкційна картка) для лабораторної роботи
- •Інструкційна картка лабораторного заняття № 6
- •Загальні відомості з теми
- •1. Сортування масиву
- •1.1. Сортування методом вставки
- •1.2. Сортування методом вибору
- •1.3. Сортування методом обміну
- •Зміст роботи
- •Індивідуальні завдання:
- •Приклад задачі сортування одновимірного масиву методом вставки
- •Лістинг програми:
- •Приклад задачі сортування одновимірного масиву методом вибору
- •Лістинг програми:
- •Приклад задачі сортування одновимірного масиву методом обміну
- •Лістинг програми:
- •Контрольні питання
Лістинг програми:
program ex6_2; {сортування методом вибору}
uses crt;
var n,i,j:integer; {кількість та індекси елементів}
а:аrrау[1..10] of integer;
min, іmin:integer; {мінімальний елемент і його індекс}
begin
clrscr;
randomize; {ініціалізувати генератор випадкових чисел}
writeln(‘selection sort’);
writeln(‘enter number of the components (<=10)’); readln(n); {ввести кількість елементів масиву} for i:=l to n do {генерувати масив}
a[i]:=random(30);
writeln('generated array');
for i:=l to n do {вивести згенерований масив)
write(a[i],' ');
writeln;
writeln('series of selection');
for і;=1 to n-1 do
begin
min:=a[i]; {пошук мінімального елемента в діапазоні від і-го до останнього елемента}
imin:=i; {індекс мінімального елемента}
for j:=i+l to n do {пошук мінімального елемента}
if min>a[j] then
begin
min:=a[j];
imin:=j;
end;
a[imin]:=a[i]; {обмін місцями мінімального та поточного елементів} a[i]:=min;
for j:=l to n do {виведення проміжних результатів}
write(a[j],' ');
writeln;
end;
writeln('sorted array');
for i;=l to n do {виведення відсортованого масиву}
write(a[i],' ');
readln; end.
Приклад задачі сортування одновимірного масиву методом обміну
Установити лічильник ітерацій рівним одиниці.
Для елементів масиву, від останнього до елемента з індексом, що дорівнює поточному значенню лічильника ітерацій, повторювати такі дії:
Якщо поточний елемент більший за попередній, поміняти ці елементи місцями.
Перейти до попереднього елемента.
Збільшити лічильник ітерацій. Якщо значення лічильника дорівнює кількості елементів масиву, завершити сортування.
Лістинг програми:
program ex6_3; {сортування обміном}
uses crt;
var n,i,j,k:integer; {кількість та індекси елементів}
а:аrrау[1..10] of integer;
tmp:integer; {допоміжний елемент для обміну}
begin
clrscr;
randomize;
writeln('exchange sort');
writeln(‘enter number of the components (<=10)’);
readln(n);
for i:=2 to n do {генерувати масив}
a[i]:=random(30);
writeln(‘generated array’);
for i:=l to n do {вивести згенерований масив}
write( a[i].' ');
writeln;
writeln(‘sort process’);
for i:=2 to n do {сортувати методом обміну}
for j:=n downto і do
if a[j]<a[j-l] then
begin {поміняти елементи місцями}
tmp:=a[j];
a[j];=a[j-l];
a[j-l]:=tmp;
{виведення проміжних результатів}
for k:=l to n do
write(a[k].' ');
writeln;
end; writeln('sorted array'); for i:=l to n do {вивести відсортований масив}
write(a[i],' ');
readln; end.
Контрольні питання
Які методи впорядкування масивів Ви знаєте?
Що таке метод обміну впорядкування масиву?
Що таке метод бульбашки?
Як оптимізувати метод бульбашки?
Яка робоча функція алгоритму бульбашки?
Що таке алгоритм включення для сортування масиву?
Що таке метод вибору сортування масиву?
Який метод називають методом швидкого сортування?
Яка робоча функція методу швидкого сортування?
Викладач ____________ М. О. Пашко
