Numero minimo di trasposizioni per ordinare un elenco


15

Nel tentativo di escogitare il mio algoritmo di ordinamento, sto cercando il punto di riferimento ottimale con cui posso confrontarlo. Per un ordinamento non ordinato degli elementi A e un ordinamento ordinato B , qual è un modo efficiente per calcolare il numero ottimale di trasposizioni da ottenere da A a B ?

Una trasposizione è definita come la commutazione della posizione di 2 elementi nell'elenco, quindi ad esempio

1 2 4 3

ha una trasposizione (trasposizione 4 e 3) per farlo

1 2 3 4

Qualcosa di simile a

1 7 2 5 9 6

richiede 4 trasposizioni (7, 2), (7, 6), (6,5), (9, 7)

Aggiornamento (9/7/11): la domanda è stata modificata per utilizzare "trasposizione" anziché "swap" per fare riferimento a scambi non adiacenti.


cosa succede se puoi semplicemente scambiare i vicini? come posso capire il numero minimo di swap?

Risposte:


23

Se hai a che fare solo con permutazioni di elementi, allora avrai bisogno esattamente di swap, dove è il numero di cicli nella scomposizione del ciclo disgiunto di . Poiché questa distanza è bi-invariante, trasformare in (o in , o viceversa) richiede tali mosse.nn-c(π)c(π)ππσUNBn-c(σ-1π)


Nonostante abbia votato per questo molto tempo fa, oggi è scattato. Come un cubo di Rubik, giusto: D?
sova,

11

La distanza di swap può anche essere incorporata isometricamente nello spazio euclideo. Per ogni stringa s, costruisci una matrice dove se presenta prima di e altrimenti è zero. Quindi la distanza di Frobenius è la distanza di scambio . (dalle diapositive di Graham Cormode ). Non elegante come la risposta di Anthony, ma abbastanza facile da calcolare.M(S)Mioj=1iojM(S)-M(S')2d(S,S')

Aggiornamento: vedere i commenti di Oleksandr


Mi sembra che nella presentazione di Graham intendano la norma spettrale ( ) e non la norma di Frobenius ( ). UN2UNF
Oleksandr Bondarenko il

anche se se tutto ciò che vuoi fare è contare le differenze, allora il quadrato della norma frobenius dovrebbe funzionare bene?
Suresh Venkat,

che è ovviamente la distanza di Hamming per matrici 0-1
Suresh Venkat,

Hai ragione sull'uguaglianza tra il quadrato della norma di Frobenius e la distanza di Hamming. Vorrei aggiungere quella distanza di Hamming divisa per uguale alla distanza di scambio. Ma la domanda riguardava la distanza di trasposizione ("Uno scambio è definito come commutazione della posizione di 2 elementi nell'elenco") e non sulla distanza di scambio. Ciò che riguarda la norma spettrale è il suo quadrato equivale a scambiare la distanza. 2
Oleksandr Bondarenko il

Oleksandr: Quindi suppongo che tu interpreti lo "scambio" come "lo scambio di due elementi adiacenti"?
Anthony Labarre,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.