Por que esse algoritmo de embaralhamento está errado?
Antes de ler sobre Fisher-Yates, este é o algoritmo que eu criei:
def sort(arr):
for i in range(len(arr)):
swap(arr, i, rand.randint(0, len(arr) - 1))
Pelo que entendi, a única diferença entre isso e Fisher-Yates é que, em vez de:
swap(arr, i, rand.randint(0, len(arr) - 1))
Eu deveria escrever:
swap(arr, i, rand.randint(i, len(arr) - 1))
Alguém poderia explicar como o primeiro algoritmo está incorreto? (ou seja, não produz aleatoriamente aleatoriamente).