Эффективность сортировки слиянием (nlogn) всегда выше, чем сортировка выбором (n^2). Когда бы вы предпочли выбор сортировке слиянием?
Когда бы вы использовали сортировку выбором или сортировку слиянием?
Ответы (1)
Поскольку время выполнения сортировки выбором равно (n2), а время выполнения сортировки слиянием равно O(n log n), для достаточно больших входных данных сортировка слиянием превзойдет сортировку выбором. Однако есть две области, в которых сортировка выбором может быть лучше:
Сортировка выбором в массиве может быть реализована с O(1) вспомогательной памятью, тогда как (большинство) реализаций сортировки слиянием в массивах используют (n) вспомогательную память. В результате, если памяти очень мало, сортировка выбором будет лучшим выбором, чем сортировка слиянием. (Однако это был бы худший выбор, чем, скажем, пирамидальная или быстрая сортировка!)
Сортировка выбором может быть быстрее, чем сортировка слиянием на небольших входных массивах, потому что это более простой алгоритм с меньшими постоянными коэффициентами, чем те, которые скрыты сортировкой слиянием. Если вы сортируете, скажем, массивы из 16 или около того элементов, то сортировка выбором может быть быстрее, чем сортировка слиянием. (Однако, вероятно, это был бы худший выбор, чем, скажем, сортировка вставками).
Другими словами, в некоторых случаях сортировка выбором будет лучше, чем сортировка слиянием, но в этих случаях вам, вероятно, лучше использовать другой алгоритм сортировки. :-)