Как все знают, что обработка сортировки, которая оптимизируется, занимает меньше времени, чем обычная сортировка? Узнав, что оптимизация рода занимает меньше времени, сначала подумал, что приходит мне на ум: «Что делает быстрее»?Почему обработка «оптимизировать сортировку» занимает меньше времени, чем обычная сортировка?
ответ
Основная причина, по которой оптимизированная сортировка выполняется быстрее, заключается в том, что она уменьшает количество сравнений и/или перемещений двух элементов.
Если вы думаете о наивных наихудших типах N элементов, где вы сравниваете каждый из N элементов с каждым из других элементов N-1, то существует общее количество N * (N-1) = N^2-N сравнения. Одним из возможных способов оптимизации процесса было бы сортировать меньший список - например, N/2. Это потребует сравнений N/2 * (N/2-1) или N^2/4-N/2. Но, конечно, вам нужно будет сделать это на обеих половинах списка, что бы удвоить это - так что N^2/2-N сравнения. Вам также понадобится N/2 дополнительных сравнений, чтобы объединить две половинки обратно вместе, поэтому общее количество сравнений для сортировки двух полуразмерных списков и их слияния будет равно N^2/2-N + N/2 или N^2/2-N/2 - половина количества сравнений для сортировки всего списка. Рекурсивно подразделяя ваши списки на 2 элемента, которые могут быть отсортированы только с одним сравнением, может обеспечить значительную экономию в количестве сравнений. Существуют и другие идеи «разделяй и властвуй», а также способы использовать обнаруженные симметрии в списках, чтобы помочь оптимизировать алгоритм сортировки и в сочетании с различными способами упорядочивания данных в памяти (массивы против связанных списков против кучек против деревьев ... и т. д.), это приводит к различным оптимизированным алгоритмам.
+1 спасибо за ваш ответ –
- 1. Почему mongoDB занимает меньше времени для выбора, чем выбор времени?
- 2. Почему сортировка пузыря занимает больше времени, чем выбор сортировки
- 3. Почему сортировка слияния занимает слишком много времени?
- 4. Почему сортировка занимает так много времени?
- 5. Почему memoizaion занимает больше времени, чем табуляция?
- 6. Почему больше инструкций по сборке Pentium занимает меньше времени?
- 7. Почему обработка представления занимает больше времени, чем обработка таблицы в SSAS?
- 8. Сортировка списка занимает много времени
- 9. Куча сортировки против вставки Сортировка теста JMH: почему мой вставку имплантируется. занимает меньше времени?
- 10. Производительность GHC: Почему больше работы занимает * много * меньше времени?
- 11. Почему команда grep занимает меньше времени при выполнении второго раза?
- 12. Если данные меньше заданного предела, слишком много времени занимает
- 13. Почему приложение «Обработка» занимает больше времени, чтобы реагировать со временем?
- 14. Почему 0x82 меньше, чем 0x80?
- 15. Оптимизировать сортировку сортировки?
- 16. Как оптимизировать сортировку слияния?
- 17. Почему меньше директив/больше html занимают больше времени, чем больше директив/меньше html?
- 18. Почему fsutil.exe занимает меньше времени, чтобы написать огромный файл на диск, чем программно?
- 19. Почему неудача в обратном следе Perl, похоже, занимает меньше времени, чем успех матча?
- 20. Просмотр занимает больше времени, чем запрос
- 21. WCF EndpointNotFoundException занимает больше времени, чем TimeoutException
- 22. Почему большой переменной меньше, чем меньше переменная
- 23. Euler014 занимает намного больше времени, чем int
- 24. Сортировка строк из массива занимает много времени
- 25. Hive запрос занимает больше времени, чем ожидалось
- 26. Почему добавление с плавающей запятой занимает больше времени, чем умножение
- 27. Почему postgres Heroku занимает больше времени, чем локальный mysql?
- 28. Почему python3 занимает вдвое больше времени, чем загружает python2?
- 29. Почему UPDATE занимает гораздо больше времени, чем SELECT?
- 30. Почему такое же программное обеспечение занимает больше времени, чем раньше?
По определению «оптимизировано», я думаю .. Не совсем понятно, что вы здесь задаете. – Blorgbeard