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


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 (n−c(π)c(π)ππσAB таких ходів.n−c(σ−1∘π)


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

11

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

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


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

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

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

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

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