Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабораторний практикум інф сис та стр даних.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.39 Mб
Скачать

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

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

  2. Який метод сортування був розглянений на даній лабораторній роботі?

  3. Від чого прямо – залежним являється швидкість сортування?

  4. Опишіть характеристики даного методу.

  5. Порівняєте даний метод із іншими методами сортування вам відомими.

  6. Наскільки являється ефективним даний метод сортування?

  7. Чи використовують даний метод на практиці, і наскільки часто?

  8. Чи можлива оптимізації даного методу? Якщо так, то яка? Якщо ні, то по яких причинах?

  9. Чим оригінальним виділяється даний метод від інших?

Приклад виконання лабораторної роботи #6

2. Теоретичні відомості

Будуватимемо готову послідовність, починаючи з лівого кінця масиву. Алгоритм складається з n послідовних кроків, починаючи від нульового і закінчуючи (n-1) -м.

На i-м кроці вибираємо найменший з елементів а[i]... а[n] і міняємо його місцями з а[i]. Послідовність кроків при n=5 зображена на малюнку нижче.

Для знаходження найменшого елементу з n+1 розглянутий алгоритм здійснює n порівнянь. З урахуванням того, що кількість елементів, що розглядаються на черговому кроці, зменшується на одиницю, загальну кількість операцій:

n + (n-1) + (n-2) + (n-3) + ... + 1 = 1/2 * ( n2+n ) = Theta(n2).

Завдання:

Впорядкувати одновимірний масив методом вибірки. Повторити декілька раз з різною кількістю елементів та порівняти час виконання.

Код програми

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

#include<conio.h>

void vstavka (int N[], int d)

{

int k,l,r,tmp;

for (k=0;k<d-1;k++)

{ r=k; tmp=N[k];

for (l=k+1;l<d;l++)

if (N[l]<tmp)

{

r=l;

tmp=N[l];

}

N[r]=N[k];

N[k]=tmp;

}

}

int verify(int N[], int d)

{

int k;

for (k=0;k<d-1;k++)

if (N[k]>N[k+1])

return 0;

return 1;

}

void main(void)

{

int N[100000],M[100000];

int i,j,m;

int C[5]={10000,20000,50000,80000,100000};

clock_t start, end;

clrscr();

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

{

for (j=0;j<C[i];j++)

N[j]=rand();

start=clock();

vstavka(N, C[i]);

end=clock();

break;

printf ("%d - %.3f - %s\n", C[i], (end-start)/CLK_TCK, verify(N, C[i]) ? "OK" : "Error");

}

getch();

}

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

Лабораторна робота № 7 Методи сортування. Алгоритм бульбашки

Мета роботи: Вивчити та дослідити методи сортування, як один із методів обробки даних. Ознайомитись із Бульбашковим методом сортування. Виконати лабораторну роботу використавши здобуті знання по методам сортування, зокрема метод бульбашки.

Індивідуальне завдання

1.

Створити масив прізвищ студентів власної групи і посортувати у алфавітному порядку. Максимальна кількість студентів 50. Прізвища студентів вводиться з клавіатури.

2.

Отримати із командного рядка масив цілих чисел і провести його сортування у зворотному порядку. Максимальна кількість чисел 10.

3.

Провести сортування кольорів по різних каналах RGB кольори і по якому каналу необхідно сортувати вводимо із клавіатури. Кількість елементів 15.

4.

Написати функцію сортування чисел в окремій бібліотеці. Кількість елементів від 1 до 50.

5.

Створити програму сортування мобільних телефонів по виробнику і по моделям. Кількість телефонів 100. Використовувати структури мови C/C++ для спрощення написання програмного коду.

6.

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

7.

Візуально покрокове відобразити метод сортування із покроковим проходом. Кількість елементів 4.

8.

Розділити масив на два масиви парних і не парних чисел і посортувати кожен з них. Кількість елементів 30.

9.

Написати програму сортування ІР. Результатом є характеристика ІР адреси(її опис: локальна машина, мережева станція, мережа). Кількість елементів 10.

10.

Розділити масив на два масиви від’ємних і додатних чисел і посортувати кожен з них. Кількість елементів 20. (0 віднести до додатніх елементів)

11.

Написати програму сортування робітників заводу по зарплаті. Кількість робітників 15. Обов’язкові поля: посада, прізвище, ім’я, по батькові, зарплата. Використовувати класи при написані програми.

12.

Зчитати з файлу список мешканців будинку і посортувати їх у зростаючому порядку. Кількість жильців 32.

13.

Провести сортування автомобілів по року випуску. Додаткові поля модель власник необхідно відображати після року випуску автомобіля. Кількість елементів 17.

14.

Створити внутрішній метод сортування для класу цілих чисел. Кількість елементів 9.

15.

Зчитати з файлу масив, посортувати його і записати у інший файл. Кількість елементів 12.