Почему этот алгоритм тасования неверен?
Прежде чем я прочитал о Фишере-Йейтсе, вот алгоритм, который я придумал:
def sort(arr):
for i in range(len(arr)):
swap(arr, i, rand.randint(0, len(arr) - 1))
Насколько я понимаю, единственная разница между этим и Фишером-Йейтсом заключается в том, что вместо:
swap(arr, i, rand.randint(0, len(arr) - 1))
Я должен написать:
swap(arr, i, rand.randint(i, len(arr) - 1))
Может кто-нибудь объяснить, как первый алгоритм неверен? (т.е. не производит случайного перемешивания).