Cette question concerne l'algorithme de Fisher-Yates pour renvoyer un mélange aléatoire d'un tableau donné. La page Wikipedia dit que sa complexité est O (n), mais je pense que c'est O (n log n).
Dans chaque itération i, un entier aléatoire est choisi entre 1 et i. La simple écriture de l'entier en mémoire est O (log i), et comme il y a n itérations, le total est
O (log 1) + O (log 2) + ... + O (log n) = O (n log n)
ce qui n'est pas mieux l'algorithme naïf. Est-ce que j'ai râté quelque chose?
Remarque: L'algorithme naïf consiste à attribuer à chaque élément un nombre aléatoire dans l'intervalle (0,1), puis à trier le tableau en fonction des nombres attribués.