2015-01-24 2 views
-2

Каков наиболее эффективный способ сортировки массива на любом языке? С наименьшими значениями O() и P(). Я считаю, что сортировка оболочки является одним из лучших способов сортировки, но есть ли что-то более быстрое?Самый эффективный способ сортировки arrya

+0

Быстросортировать, вероятно, самый быстрый универсальный алгоритм со скоростью O (n logn) – Iamsomeone

+4

Каков наиболее эффективный способ узнать ответ на этот вопрос? Google ... –

+1

http://cs.stackexchange.com/a/18545 –

ответ

2

Чтобы сделать его коротким:

Introsort и Timsort являются наиболее часто используемые алгоритмы сортировки в реальном мире.

В среднем они имеют как O (nlogn) сложность, так и в худших случаях, что делает их лучше, чем QuickSort в тех случаях, когда Quicksort находится в O (n^2). Introsort используется в C и C++ STL, а Timsort используется в реализациях Python и Java (по крайней мере для сортировки массивов объектов в Java).

Оболочка Shell находится в O (n (logn)^2), поэтому немного медленнее, но использует меньше памяти, поэтому может быть пригодна для встроенных систем. См. enter link description here для получения более подробной информации.

+1

Сортировка кучи использует O (1) память и время O (nlogn), не лучше ли это сортировка оболочки? –

+0

Да, он также использует небольшую память, но сравнение алгоритмов сортировки во встроенных системах - деликатный вопрос. См. Http://embeddedgurus.com/stack-overflow/2009/03/sorting-in-embedded-systems/, например –

 Смежные вопросы

  • Нет связанных вопросов^_^