2.5 Сравнение всех сортировок
В таблице 2.9 покажем для каждой сортировки количество перестановок, сравнений и затраченное время для длины из 500 символов.
Таблица 2.9 – Сравнение сортировок
Сортировка |
Сравнения |
Перестановки |
Время |
«Расческа» |
11999 |
1620 |
0,000098 |
«Шелла» |
5928 |
2675 |
0,000051 |
Быстрая |
4047 |
1248 |
0,000031 |
Пирамидальная |
8417 |
4530 |
0,000054 |
Из таблицы видно, что худшая сортировка по сравнениям – сортировка расческой, а лучшая – быстрая сортировка. По перестановкам худшая - пирамидальная сортировка, а лучшая – быстрая. По времени худшая – сортировка расческой, а лучшая – быстрая. Из этого можно сделать вывод, что самая лучшая сортировка – быстрая сортировка, а худшая – сортировка расческой.
2.6 Выявление худшего и лучшего результата у каждой сортировки
Для того чтобы выявить худший и лучший результат, будем запускать нашу программу для каждой сортировки 10 раз длиной 100 символов в массиве, и внесем все данные в таблицу 2.10.
Таблица 2.10 – Значения для выявления лучшего и худшего результата сортировки «Расческа»
№ |
Сравнения |
Перестановки |
Время |
1 |
1617 |
232 |
0,000016 |
2 |
1617 |
213 |
0,000012 |
3 |
1617 |
226 |
0,000011 |
4 |
1617 |
222 |
0,000011 |
5 |
1617 |
184 |
0,000011 |
6 |
1617 |
222 |
0,000013 |
7 |
1617 |
231 |
0,000012 |
8 |
1617 |
237 |
0,000012 |
9 |
1617 |
176 |
0,000011 |
10 |
1617 |
205 |
0,000011 |
Из таблицы можно сделать вывод, что при длине массива 100 символов в сортировке расческа количество сравнений не меняется, наилучшее количество перестановок = 176, а наихудшее = 237. Наилучшее время – 0,000011, а наихудшее 0,000016.
Проделаем тоже самое с остальными сортировками (таблицы 2.11-2.13).
Таблица 2.11 – Значения для выявления лучшего и худшего результата сортировки «Шелла»
№ |
Сравнения |
Перестановки |
Время |
1 |
790 |
342 |
0,000007 |
2 |
856 |
411 |
0,000005 |
3 |
803 |
350 |
0,000005 |
4 |
875 |
431 |
0,000005 |
5 |
853 |
399 |
0,000006 |
6 |
846 |
389 |
0,000011 |
7 |
825 |
374 |
0,000005 |
8 |
815 |
360 |
0,000005 |
9 |
831 |
370 |
0,000005 |
10 |
879 |
430 |
0,000006 |
Из таблицы можно сделать вывод, что при длине массива 100 символов в сортировке Шелла наилучшее количество сравнений =790, наихудшее – 879, наилучшее количество перестановок = 342, а наихудшее = 431. Наилучшее время – 0,000005, а наихудшее 0,000011.
Таблица 2.12 – Значения для выявления лучшего и худшего результата быстрой сортировки
№ |
Сравнения |
Перестановки |
Время |
1 |
658 |
191 |
0,000008 |
2 |
551 |
205 |
0,000004 |
3 |
663 |
183 |
0,000004 |
4 |
655 |
190 |
0,000004 |
5 |
594 |
193 |
0,000004 |
6 |
714 |
184 |
0,000009 |
7 |
558 |
197 |
0,000004 |
8 |
629 |
196 |
0,000003 |
9 |
554 |
184 |
0,000003 |
10 |
672 |
199 |
0,000004 |
Из таблицы можно сделать вывод, что при длине массива 100 символов в быстрой сортировке наилучшее количество сравнений = 554, наихудшее – 714, наилучшее количество перестановок = 183, а наихудшее = 205. Наилучшее время – 0,000003, а наихудшее 0,000009.
Таблица 2.12 – Значения для выявления лучшего и худшего результата пирамидальной сортировки
№ |
Сравнения |
Перестановки |
Время |
1 |
1221 |
669 |
0,000001 |
2 |
1207 |
672 |
0,000007 |
3 |
1221 |
672 |
0,000006 |
4 |
1224 |
680 |
0,000007 |
5 |
1241 |
693 |
0,000007 |
6 |
1217 |
674 |
0,000007 |
7 |
1205 |
665 |
0,000007 |
8 |
1209 |
669 |
0,000006 |
9 |
1213 |
667 |
0,000007 |
10 |
1194 |
670 |
0,000006 |
Из таблицы можно сделать вывод, что при длине массива 100 символов в пирамидальной сортировке наилучшее количество сравнений = 1194, наихудшее – 1241, наилучшее количество перестановок = 665, а наихудшее = 693. Наилучшее время – 0,000006, а наихудшее 0,00001.