Я должен ответить на следующий вопрос:
Какой алгоритм сортировки рекомендуется, если первая n-м деталь
уже отсортировано, а оставшаяся часть m не отсортирована? Существуют ли алгоритмы, которые берут O (n log m) сравнений? Что насчет O (m log n) сравнений?
Я просто не могу найти решение.
Моей первой идеей была сортировка вставкой, потому что O (n) для почти отсортированной последовательности. Но так как мы не знаем размер m, вполне вероятно, что время выполнения будет O (n ^ 2), хотя последовательность уже наполовину отсортирована, не так ли?
Тогда я решил, что perhabs его быстрая сортировка, потому что он требует (сумма от k = 1 до n) сравнений Cavg (1-m) + Cavg (n-m). Но после игнорирования n-m части последовательности оставшаяся последовательность будет 1-m в быстрой сортировке, а не m.
Объединение сортировки и сортировки кучи должно иметь время выполнения O (m log m) для оставшейся последовательности m, я бы сказал.
Кто-нибудь имеет идею или может дать мне совет?
Привет