Мета роботи: познайомитися з роботою поширених методів сортування, з критеріями та методикою їх порівняння.
Бібліотеку "Geometry" замовнику спихнули, гроші отримали, гуляли всією командою. Не дай, Боже, так напиватися надалі... Але пристойна хвірма без роботи не сидить! Аж ось і нове замовлення.
Оце для Вовчика було справжньою несподіванкою: виявляється, амерікоси цікавляться не тільки конкретними програмами, але й дослідницькими роботами!
Нам запропоновано дослідити якість роботи методів сортування масивів. Методів сортування — безліч. Всі вони відрізняються одне від одного силою критеріїв. І для кожного з методів можна вибрати критерій, за яким він буде найкращим серед інших. На великих масивах найшвидшим вважається метод швидкого сортування (а ви як думали?) QuickSort. Серед початківців найкращім вважається бульбашковий метод простого обміну BubbleSort (не плутати з Bubble gum). Бо найпростіший — один подвійний цикл, і все. А ще ж є метод включення, вибору, двійкового сортування, шейкерного, їхні численні модифікації...
Методи описано у конспекті лекцій. До групи т.зв. простих відносимо методи простого включення, вибору та обміну ("бульбашковий"), до групи більш довершених - методи Шелла та швидкого сортування.
Серед критеріїв, за якими порівнюються методи, розрізнюють:
Останнi два пункти можна викласти, наприклад, у такiй таблицi:
Метод такий-то | Метод сякий-то | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
N | К-ть копіювань (M) | К-ть порівнянь (C) | Час (T) |
К-ть копіювань (M) | К-ть порівнянь (C) | Час (T) |
||||
Теорет. | Експерим. | Теорет. | Експерим. | Теорет. | Експерим. | Теорет. | Експерим. | |||
100 | ||||||||||
1000 | ||||||||||
10000 |
Для методу Шелла відома лише порядкова оцінка: M = O(N1,2); C = O(N1,2). Це означає, що експериментальні величини можуть відрізнятися від теоретичних у багато разів, але відношення Mексп / Mтеор та Cексп / Cтеор мають бути приблизно постійними незалежно від значення N. Порахуйте ці відношення, занесіть до таблиці та проаналізуйте.
Номер варіанту обчислюється як ((Nсп-1) mod 6) + 1, де Nсп - Ваш номер у журнальному списку.
No вар | Метод | |
---|---|---|
"простий" | "складний" | |
1 | "Простого включення" | метод Шелла |
2 | "Простого вибору" | метод Шелла |
3 | "Бульбашки" | метод Шелла |
4 | "Простого включення" | метод швидкого сортування |
5 | "Простого вибору" | метод швидкого сортування |
6 | "Бульбашки" | метод швидкого сортування |