2011-11-05 2 views
0

Я должен ответить на следующий вопрос: Не могли бы вы подумать о сценарии, в котором SelectionSort лучше (с точки зрения разработки результата), чем InsertionSort.SelectionSort и InsertionSort

Моя идея заключается в том, что если вам нужно только, например, 10 лучших из очень большого списка, вы можете завершить сортировку после 10-го шага. Действительно ли это ответ на этот вопрос? Не могли бы вы подумать о других сценариях?

ответ

1

Когда массив ввода «близко к отсортированному» сортировке selecion имеет лучшую производительность, чем сортировка вставки. Также есть две вещи, которые вы должны учитывать: выбор сортировки требует только Θ (n) свопов по сравнению с Ο (n2) (в случае сортировки сортировки); выбор вид есть устойчивость сильный осуществление, inserting сортировка нет.

+0

На самом деле вставка сортировки лучше работает на отсортированных массивах. – Neil

+0

общий выбор сортировки НЕ стабилен, но сортировка вставки – jeha

+0

для сортировки сортировки, даже отлично отсортированный вход требует сканирования всего массива => 'O (n^2)' – jeha

2

ВставкаSort имеет Ο(n^2) свопы в худшем случае, но SelectionSort - Θ(n). Поэтому, если записи значительно дороже, чем чтение, лучше выбрать SelectionSort.

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