Quicksort es bastante fácil de entender si entienden el conteo básico y la división por 2. Haga un montón de tarjetas X, numerelas de 1 a X y revuélvalas. Entonces aquí está la explicación:
OK, tenemos este mazo de (digamos 20) cartas aquí. Queremos ponerlos en orden, entonces 1 es primero, luego 2, luego 3, y así sucesivamente. Aquí hay una forma muy rápida de hacerlo.
Primero, veamos este mazo y hagamos dos pilas de él. La mitad de 20 es 10, por lo que cualquier cosa mayor que 10 va en este montón a la derecha, y cualquier cosa más pequeña va en este montón a la izquierda. (Asegúrese de demostrar sobre la marcha).
Ahora, hagamos lo mismo con las pilas más pequeñas. ¿Qué es la mitad de 10? (Alguien dice "cinco") ¡Eso es correcto! Entonces, cualquier cosa mayor que 5 va en esta pila a la derecha, y cualquier cosa más pequeña va en esta pila a la izquierda.
Y por aquí, tenemos el grupo que es más grande que 10. ¿Entonces la mitad de 10 es 5, y qué es 10 más 5? (Alguien dice "quince") ¡Eso es correcto! Entonces, cualquier cosa mayor que 15 va en esta pila a la derecha, y cualquier cosa menor que 15 va en esta pila a la izquierda.
Y ahora las pilas se están volviendo lo suficientemente pequeñas como para que puedas mirarlas fácilmente y ponerlas en orden. Mira, aquí tenemos 2, 4, 5, 3, 1
. Entonces los cambiamos así, y puedes ver 1, 2, 3, 4, 5
. Así que hagamos lo mismo con las otras pilas, y luego las ponemos en orden y ¡mira! ¡Están en orden del 1 al 20!
Felicidades. ¡Acaba de enseñar a un grupo de niños los principios básicos de un algoritmo adaptativo de clasificación rápida! Puede ir un poco más profundo que eso dependiendo de la madurez mental, pero ir mucho más allá de este punto requiere cierta comprensión de la lógica formal.
En cuanto a demostrar su complejidad, eso es más complicado. Es una de las cosas que requiere lógica formal, y tendrán que entender los principios básicos de la notación big-O en primer lugar. Es posible que desee retrasar esa parte al principio.