Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
інст. карта до лаб.заняття №6.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
92.16 Кб
Скачать

Лістинг програми:

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.

Приклад задачі сортування одновимірного масиву методом обміну

  1. Установити лічильник ітерацій рівним одиниці.

  2. Для елементів масиву, від останнього до елемента з індексом, що дорівнює поточному значенню лічильника ітерацій, повторювати такі дії:

  1. Якщо поточний елемент більший за попередній, поміняти ці елементи місцями.

  2. Перейти до попереднього елемента.

  1. Збільшити лічильник ітерацій. Якщо значення лічильника дорівнює кількості елементів масиву, завершити сортування.

Лістинг програми:

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.

Контрольні питання

  1. Які методи впорядкування масивів Ви знаєте?

  2. Що таке метод обміну впорядкування масиву?

  3. Що таке метод бульбашки?

  4. Як оптимізувати метод бульбашки?

  5. Яка робоча функція алгоритму бульбашки?

  6. Що таке алгоритм включення для сортування масиву?

  7. Що таке метод вибору сортування масиву?

  8. Який метод називають методом швидкого сортування?

  9. Яка робоча функція методу швидкого сортування?

Викладач ____________ М. О. Пашко

8