Quicksort est en fait assez facile à comprendre, s'ils comprennent le comptage de base et la division par 2. Créez un tas de cartes flash X, numérotez-les 1 - X et mélangez-les. Alors voici l'explication:
OK, nous avons ici ce jeu de cartes (disons 20). Nous voulons les mettre en ordre, donc 1 est d'abord, puis 2, puis 3, et ainsi de suite. Voici un moyen très rapide de le faire.
Tout d'abord, passons par ce jeu et en faisons deux piles. La moitié de 20 est 10, donc tout ce qui dépasse 10 va dans cette pile à droite, et tout ce qui est plus petit va dans cette pile à gauche. (Assurez-vous de démontrer que vous allez.)
Maintenant, faisons la même chose avec les piles plus petites. Quelle est la moitié de 10? (Quelqu'un dit "cinq!") C'est vrai! Donc, tout ce qui dépasse 5 va dans cette pile à droite, et tout ce qui est plus petit va dans cette pile à gauche.
Et ici, nous avons le groupe qui est plus grand que 10. Donc, la moitié de 10 est 5, et qu'est-ce que 10 plus 5? (Quelqu'un dit "quinze!") C'est vrai! Donc, tout ce qui dépasse 15 va dans cette pile à droite, et tout ce qui est inférieur à 15 va dans cette pile à gauche.
Et maintenant, les piles deviennent suffisamment petites pour que vous puissiez facilement les regarder et les mettre en ordre. Regardez, nous avons ici 2, 4, 5, 3, 1
. Nous les basculons donc comme ça, et vous pouvez voir 1, 2, 3, 4, 5
. Faisons donc la même chose avec les autres piles, puis nous mettons simplement les piles en ordre, et regardons! Ils sont en ordre de 1 à 20!
Toutes nos félicitations. Vous venez d'apprendre à un groupe d'enfants les principes de base d'un algorithme de tri rapide adaptatif! Vous pouvez aller un peu plus loin que cela en fonction de la maturité mentale, mais aller bien au-delà de ce point nécessite une certaine compréhension de la logique formelle.
Quant à prouver sa complexité, c'est plus délicat. C'est l'une des choses qui nécessite une logique formelle, et ils devront comprendre les principes de base de la notation big-O en premier lieu. Vous voudrez peut-être retenir cette partie au début.