Saya ingin metode yang efisien untuk menghitung jumlah minimum transposisi yang diperlukan untuk mengurutkan daftar. Saya tidak perlu tahu apa sebenarnya transposisi itu.
Misalnya, daftar [1, 1, 2, 0] membutuhkan 2 transposisi:
[1, 1, 2, 0] // Start
[1, 1, 0, 2] // Swap index 2 and 3
[0, 1, 1, 2] // Swap index 0 and 2
Daftar [0, 1, 0, 0] membutuhkan 1 transposisi:
[0, 1, 0, 0] // Start
[0, 0, 0, 1] // Swap index 1 and 3
Daftar [2, 2, 2, 2] membutuhkan 0 transposisi karena sudah diurutkan.
Beberapa informasi meta: 1) Daftar ini mungkin memiliki elemen berulang, jadi cukup menggunakan jarak Cayley antara pengurutan dan permutasi identitas tidak akan berfungsi . 2) Pertanyaan Math Overflow ini terkait.