logo
ООП для Заоч / Пинчук Лозовская Программир на С

Void main()

{ int *a; // масив, що сортирується

int N; // кількість елементів масиву

int i,k; // робочі змінні

int min; // номер мінімального елемента в частині масиву

// від i-го елемента до верхньої границі масиву

int j; // номер елемента, порівнюваного з мінімальним

printf("Кількість елементів масиву = "); scanf("%d",&N);

printf("Введіть елементи масиву: \n");

for(k=0; k<N; k++) scanf("%d",&a[k]);

printf("Сортування ... \n");

for(i=0; i<N; i++)

{ // пошук мінімального эл-та в частині масиву

// від а[i] до а[N]

min = i;

for (j=i+1; j<N; j++) if (a[min] > a[j]) min =j;

swp(а[min],а[i]); // обмін місцями а[min] і а[i]

for (k=0;k<N;k++) printf("%d ",a[k]);

// виведення масиву

printf("\n");

}

printf("Масив відсортований.\n");

}

Протокол роботи програми:

Кількість елементів масиву = 6

Введіть елементи масиву:

34 76 23 98 35 12

Сортування ...

12 76 23 98 35 34

12 23 76 98 35 34

12 23 34 98 35 76

12 23 34 35 98 76

12 23 34 35 76 98

Масив відсортований.

Сортування методом парного обміну.

В основі алгоритму лежить операція впорядкування пари сусідніх елементів масиву. Кожна пара сусідніх елементів перевіряється і, якщо треба, ці елементи міняються місцями. Ця процедура повторюється до повного впорядкування наданого масиву. При впорядкуванні по зростанню елементи з меншим значенням просуваються до початку масиву (спливають), а елементи з більшим значенням - до кінця масиву (тонуть). Тому цей метод часто називають методом «пухирця».

Нижче представлена програма сортування масиву цілих чисел по зростанню методом «пухирця». Для демонстрації процесу сортування після виконання чергового циклу обмінів програма виводить масив.

// Приклад 2

#include <syst.h>