Antes de leer acerca de Fisher-Yates, este es el algoritmo que se me ocurrió:¿Por qué este algoritmo de mezcla es incorrecto?
def sort(arr):
for i in range(len(arr)):
swap(arr, i, rand.randint(0, len(arr) - 1))
Desde mi entender, la única diferencia entre este y Fisher-Yates es que en lugar de:
swap(arr, i, rand.randint(0, len(arr) - 1))
que debería escribir:
swap(arr, i, rand.randint(i, len(arr) - 1))
Podría alguien explicar cómo el primer algoritmo es incorrecta? (es decir, no produce un aleatorio aleatorio).