En essayant de concevoir mon propre algorithme de tri, je cherche le benchmark optimal auquel je peux le comparer. Pour un ordre non trié des éléments A et un ordre trié B , quel est un moyen efficace de calculer le nombre optimal de transpositions pour passer de A à B ?
Une transposition est définie comme la commutation de la position de 2 éléments dans la liste, donc par exemple
1 2 4 3
a une transposition (transposition 4 et 3) pour le rendre
1 2 3 4
Quelque chose comme
1 7 2 5 9 6
nécessite 4 transpositions (7, 2), (7, 6), (6,5), (9, 7)
Mise à jour (9/7/11): question modifiée pour utiliser la "transposition" au lieu de "swaps" pour faire référence aux échanges non adjacents.