Неверный алгоритм поиска минимального количества перестановок, необходимых для сортировки массива - PullRequest
0 голосов
/ 23 февраля 2019

Я использовал этот алгоритм, чтобы найти минимальное необходимое количество перестановок, но это не дает правильного результата для всех тестовых случаев.Может ли кто-нибудь помочь мне выяснить, в каких случаях это не дает правильного правильного результата и почему.

def minimumSwaps(arr):
    if len(arr) == 1 or len(arr) == 0:
        return 0
    e = min(arr)
    if e == arr[0]:
        return 0 + minimumSwaps(arr[1:])
    else:
        k = arr.index(e)
        arr[0], arr[k]  =  e, arr[0]   # or use swap(arr, 0, k)
        return 1 + minimumSwaps(arr[1:])
...