Le cas moyen est en effet O (N N!):
Observe qu'il ya exactement N! permutations de N éléments. La probabilité de choisir le bon est exactement 1/N !. Par conséquent, par la loi forte des grands nombres, le nombre attendu de shuffles est N !.
D'où vient l'autre facteur N? Vous devez vérifier, à chaque étape, quelle permutation vous avez choisie. Cela peut être fait linéairement en comparant les éléments adjacents. Par conséquent un facteur supplémentaire de N.
Commentaires ci-dessus ont indiqué que O (g (n)) notation est "pire des cas":
1) Ce n'est pas vrai. La définition de O (g (n)) est: f (n) est O (g (n)) s'il existe quelques c, d tels que f (n) < c * g (n) + d pour suffisamment grand n. Il n'y a rien sur le "pire des cas". Il se trouve juste que g (n) est une fonction plus grande que f (n), mais la pure définition mathématique ne dit rien de "cas".
2) Pour les algorithmes randomisés, il est inutile de faire une analyse du "pire cas". Vous pouvez arriver à une exécution qui va être vraiment mauvaise.
3) Les exécutions vraiment mauvaises se produisent sur un ensemble de mesure 0 (Un probabiliste dirait qu'elles "presque sûrement" n'arrivent pas). Ils sont réellement impossibles à observer.
Donc c'est polynomial? Comment cela n'est-il pas au moins exponentiel? – shinzou
Shinzou 'n * n!' Est beaucoup plus grand 'n^2'. C'est plus gros que exponentiel. Donc, où 'n^2' signifie' n \ * n'; l'équation ici 'n * n!' signifie 'n * (n * (n-1) * (n-2) * (n-3) * (n-4) * ... * (n- (n- 1))) ' –