Оптимальний алгоритм сортування за кількістю свопів


12

Враховуючи послідовність чисел, чи можна її сортувати за O (n \ ln n) порівняннями та O (n) замінами / рухами? Будь-який вказівник на публікації з цього питання або контраргументи, що показують нижню межу \ Omega (n \ ln n) , допоможе.nO(nlnn)O(n)Ω(nlnn)


Будь-який алгоритм сортування на основі порівняння повинен буде виконати порівняння та свопів у гіршому випадку (пор. CLRS). Ω(nlogn)Ω(n)
Каве

4
Тривіально, ви можете домогтися переміщення якщо спершу сортувати таблицю, що містить покажчики елементів, і лише після цього сортувати таблицю, що містить елементи. O(n)
Jukka Suomela

@jukka добре, що це обман, тому що ти перемістив елементи, коли сортувавш таблицю ...
Jesse Zixi Zhang

Відповіді:


15

Існує стабільний алгоритм сортування на місці з порівнянням та переміщеннями .O(nlogn)O(n)

Див .: Gianni Franceschini: Сортування стабільно, на місці, з Порівняннями та рухами. Теорія обчислень. Сист. 40 (4): 327-353 (2007) http://www.springerlink.com/content/d7348168624070v7/O(nlogn)O(n)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.