Мінімальна кількість транспозицій для сортування списку


15

Намагаючись розробити власний алгоритм сортування, я шукаю оптимальний орієнтир, з яким я можу порівняти його. Для несортованого впорядкування елементів A і відсортованого впорядкування B , що є ефективним способом обчислення оптимальної кількості транспозицій, щоб дістатись від A до B ?

Транспозиція визначається як перемикання положення двох елементів у списку, наприклад

1 2 4 3

має одну транспозицію (транспозицію 4 і 3) для її здійснення

1 2 3 4

Щось на зразок

1 7 2 5 9 6

вимагає 4 транспозицій (7, 2), (7, 6), (6,5), (9, 7)

Оновлення (9/7/11): питання змінено на використання "транспозиції" замість "свопів" для позначення не суміжних бірж.


що робити, якщо ви можете просто поміняти сусідів? як я можу визначити мінімальну кількість свопів?

Відповіді:


23

Якщо ви маєте справу лише з перестановками елементів, вам знадобиться саме nn свопи, де з ( π ) є число циклів врозкладанні непересічних циклув П . Оскільки ця відстань є двоінваріантною, для перетворення π на σ (або A в B , або навпаки) потрібно n - c (nc(π)c(π)ππσAB таких ходів.nc(σ1π)


Незважаючи на те, що проголосували за це давно, воно сьогодні просто натиснуло. Як кубик Рубіка, правда: D?
сова

11

Відстань обміну також може бути ізометрично вбудована в евклідовий простір. Для кожного рядка s побудуйте матрицю де M i jM(s) якщо i виникає перед j, а в іншому випадку дорівнює нулю. Тоді відстань ФробеніусаM ( s ) - M ( s ) 2 - відстань заміни d ( s ,Mij=1ijM(s)M(s)2 . (ізслайдів Грема Кормода). Не настільки елегантний, як відповідь Ентоні, але досить легко обчислити.d(s,s)

Оновлення: дивіться коментарі Олександра


Мені здається, що в уявленні Грема вони мають на увазі спектральну норму ( ), а не норму Фробеніуса ( A F ). A2AF
Олександр Бондаренко

хоча якщо все, що ви хочете зробити, це порахувати різниці, то квадрат норми frobenius повинен працювати правильно?
Суреш Венкат

що, звичайно, відстань Хеммінга для матриць 0-1
Суреш Венкат

Ви маєте рацію щодо рівності між квадратом норми Фробеніуса та відстані Хеммінга. Я хотів би додати, що відстань Хеммінга розділена на дорівнює відстані своп. Але питання стосувалося відстані транспозиції ("своп визначається як перемикання положення двох елементів у списку"), а не про відстань підміни. Що стосується спектральної норми, то її площа дорівнює відстані підміни. 2
Олександр Бондаренко

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