У мене виникають проблеми з пошуку хороших ресурсів, які дають найгірший випадок на місці стабільного алгоритму сортування. Хтось знає про якісь хороші ресурси?
Просто нагадування, на місці означає, що він використовує переданий масив, а алгоритм сортування може використовувати лише постійний додатковий простір. Стабільний означає, що елементи з тим самим ключем відображаються в тому ж порядку в відсортованому масиві, як і в оригіналі.
Наприклад, наївне сортування злиття є найгіршим випадком і стабільним, але використовує додатковий простір. Стандартний кваксорт може бути стабільним, діє, але в гіршому випадку . Гіпсорт є на місці, в гіршому випадку але не є стабільним. У Вікіпедії є хороша діаграма, які алгоритми сортування мають які недоліки. Зауважте, що не існує алгоритму сортування, який вони перераховують, який має всі три умови стабільності, найгірший випадок і який існує.
Я знайшов документ "Практичний місцевий злиття" Катаджайнена, Пасанена і Теухола, який стверджує, що має найгірший випадок стабільний варіант злиття. Якщо я правильно розумію їхні результати, вони використовують ("знизу вгору?") Об'єднання рекурсивно на першому масиві та останньому масиву, а використовують другому як місця для подряпин для злиття. Я все ще читаю це, тому більше оцінюється будь-яка інформація про те, чи правильно витлумачую їх результати.
Я також був би дуже зацікавлений у гіршому випадку на місці стабільної швидкості. З того, що я розумію, модифікація квакісорти в найгіршому випадку вимагає вибору належного стрижня, який би зруйнував стабільність, якою він інакше зазвичай користується.
Це суто теоретично цікаво, і я не маю практичного застосування. Я просто хотів би знати алгоритм, який має всі три ці функції.