Dans leur livre Randomized Algorithms , Motwani et Raghavan ouvrent l'introduction avec une description de leur fonction RandQS - Randomized quicksort - où le pivot, utilisé pour partitionner l'ensemble en deux parties, est choisi au hasard.
J'ai accumulé mes cerveaux (certes un peu sous-alimentés) pendant un certain temps, mais je n'ai pas pu voir quel avantage cet algorithme a par rapport au simple choix, disons, de l'élément central (en index, pas en taille) à chaque fois.
Je suppose que ce que je ne vois pas est le suivant: si l'ensemble initial est dans un ordre aléatoire, quelle est la différence entre choisir un élément à un endroit aléatoire dans l'ensemble et choisir un élément à une position fixe?
Quelqu'un peut-il m'éclairer, en termes assez simples?
la source
Comme l'a noté Jernej, l'hypothèse selon laquelle toutes les permutations de l'entrée sont également probables ne tient pas toujours dans la réalité. La première idée pourrait être de permuter le tableau d'entrée. Cela fonctionnerait, mais il est plus facile d'analyser la situation où un pivot est choisi au hasard. Ceci est également connu sous le nom d' échantillonnage aléatoire .
la source