Учебное пособие Самара 2015 + 004. 43 Ббк 32. 973 Н 19


Download 1.98 Mb.
bet45/53
Sana15.08.2023
Hajmi1.98 Mb.
#1667321
TuriУчебное пособие
1   ...   41   42   43   44   45   46   47   48   ...   53
Bog'liq
Lekcii AiSD 2015

Классификация алгоритмов сортировки

Количество алгоритмов сортировки достаточно велико. В первом издании книги Дональда Кнута ‹Искусство програм- мирования для ЭВМ» [8] упоминаются о существовании (на мо- мент написания книги) около двадцати пяти алгоритмов сорти- ровки. В настоящее время это число ещё больше увеличилось, и вместе с экзотическими и мало распространёнными алгоритмами приближается к 40 (и даже уже превышает 40, а с модификация- ми ещё больше — около 42-44, скорее всего и эти цифры зани- женные). Все эти алгоритмы можно классифицировать по не- скольким признакам.



  1. В зависимости от того, сортируются данные в оператив- ной памяти машины (O3V) или во внешнем ЗУ, сортировка быва- ет внутренней или внешней.

  2. В зависимости от того, какая структура данных подверга- ется упорядочению, может быть сортировка массива, связного списка, дерева (пирамиды), графа.

  3. В зависимости от того, как структура данных меняется в процессе сортировки может быть сортировка списка (если эле- менты структуры данных перемещаются), или сортировка таб- лпqы адресов (если элементы не перемещаются, а сортируется имеющаяся или создаваемая таблица адресов). В таблицу адресов могут быть добавлены ключи, тогда получается сортировка таблицы ключей.

166


  1. По особенностям функциональной реализации алгоритмы

СО]ЭТИ]ЭОВКИ Д ПЯТСЯ HIS Г]Э ППЫ
Первичные:
сортировка перестановками (обменная);
— сортировка выбором (отбором); сортировка вставками;
Вторичные:
СО]ЭТИ]ЗОВКІІ ПОДСЧ ТОМ;
сортировка слиянием;
— распределяющая сортировка.

  1. По широте применения — универсальные (большинство перечисленных выше групп алгоритмов) и алгоритмы для кон- кретных случаев, не универсальные.

  2. По признаку перестановки совпадающих данных в про- цессе сортировки — алгоритмы, не меняющие порядок следования совпадающих ключей (иногда такие алгоритмы не совсем удачно называют «устойчивыми» или «стабильными»), например, сор- тировка вставками, п меняющие порядок следования («неус- тойчивые», «нестабильные»).

  3. По характеру зависимости времени работы от размера 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
Большинство алгоритмов имеет модификации. В книге Qo- нальда Кнута упоминаются более двадцати алгоритмов внутрен- ней сортировки и их комбинации.


При таком большом разнообразии важными оказываются

Download 1.98 Mb.

Do'stlaringiz bilan baham:
1   ...   41   42   43   44   45   46   47   48   ...   53




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling