Учебное пособие Самара 2015 + 004. 43 Ббк 32. 973 Н 19
Download 1.98 Mb.
|
Lekcii AiSD 2015
Классификация алгоритмов сортировки
Количество алгоритмов сортировки достаточно велико. В первом издании книги Дональда Кнута ‹Искусство програм- мирования для ЭВМ» [8] упоминаются о существовании (на мо- мент написания книги) около двадцати пяти алгоритмов сорти- ровки. В настоящее время это число ещё больше увеличилось, и вместе с экзотическими и мало распространёнными алгоритмами приближается к 40 (и даже уже превышает 40, а с модификация- ми ещё больше — около 42-44, скорее всего и эти цифры зани- женные). Все эти алгоритмы можно классифицировать по не- скольким признакам. В зависимости от того, сортируются данные в оператив- ной памяти машины (O3V) или во внешнем ЗУ, сортировка быва- ет внутренней или внешней. В зависимости от того, какая структура данных подверга- ется упорядочению, может быть сортировка массива, связного списка, дерева (пирамиды), графа. В зависимости от того, как структура данных меняется в процессе сортировки может быть сортировка списка (если эле- менты структуры данных перемещаются), или сортировка таб- лпqы адресов (если элементы не перемещаются, а сортируется имеющаяся или создаваемая таблица адресов). В таблицу адресов могут быть добавлены ключи, тогда получается сортировка таблицы ключей. 166
По особенностям функциональной реализации алгоритмы СО]ЭТИ]ЭОВКИ Д ПЯТСЯ HIS Г]Э ППЫ Первичные: сортировка перестановками (обменная); — сортировка выбором (отбором); сортировка вставками; Вторичные: СО]ЭТИ]ЗОВКІІ ПОДСЧ ТОМ; сортировка слиянием; — распределяющая сортировка. По широте применения — универсальные (большинство перечисленных выше групп алгоритмов) и алгоритмы для кон- кретных случаев, не универсальные. По признаку перестановки совпадающих данных в про- цессе сортировки — алгоритмы, не меняющие порядок следования совпадающих ключей (иногда такие алгоритмы не совсем удачно называют «устойчивыми» или «стабильными»), например, сор- тировка вставками, п меняющие порядок следования («неус- тойчивые», «нестабильные»). По характеру зависимости времени работы от размера N структуры данных: P(N 2 N-квадратичные (это самые простые алгоритмы из первых трёх функциональных групп); O( N k ! rge 1 < k < 2 (например, k = 1,6667 или k = 1,5 или k = 1,27 и т.п. — это алгоритм Шелла), возможен также случай, когда k = 3 — это один из самых неудачных и неэффективных ал- горитмов, который получил название глупая (или дурацкая) сортировка,‘ — P(log2*'7 — логарифмические (например, быстрая сорти- ровка, сортировка влиянием и пирамидальная сортировка), бо- лее точное выражение — O( N log2V: Р(Щ алгоритмы, требующие линейного времени, напри- мер, «длинная» сортировка. Возможны также некоторые другие принципы разделения алгоритмов сортировки, в том числе по занимаемой дополни- тельной памяти. 167
При таком большом разнообразии важными оказываются Download 1.98 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling