Quicksort è in realtà abbastanza facile da capire, se comprendono il conteggio e la divisione di base per 2. Crea un mazzo di X schede flash, numerale 1 - X e mescolale. Quindi ecco la spiegazione:
OK, abbiamo questo mazzo di (diciamo 20) carte qui. Vogliamo metterli in ordine, quindi 1 è prima, quindi 2, quindi 3 e così via. Ecco un modo molto veloce per farlo.
Innanzitutto, esaminiamo questo mazzo e ne facciamo due pile. La metà di 20 è 10, quindi qualsiasi cosa più grande di 10 va in questa pila a destra, e qualsiasi cosa più piccola va in questa pila a sinistra. (Assicurati di dimostrare mentre vai.)
Ora facciamo la stessa cosa con le pile più piccole. Qual è la metà di 10? (Qualcuno dice "cinque!") Esatto! Quindi, qualsiasi cosa più grande di 5 va in questa pila a destra, e qualsiasi cosa più piccola va in questa pila a sinistra.
E qui, abbiamo il gruppo che è più grande di 10. Quindi metà di 10 è 5, e cosa è 10 più 5? (Qualcuno dice "quindici!") Esatto! Quindi, qualsiasi cosa più grande di 15 va in questa pila a destra, e qualsiasi cosa più piccola di 15 va in questa pila a sinistra.
E ora le pile stanno diventando abbastanza piccole da poterle facilmente guardare e mettere in ordine. Guarda, qui abbiamo 2, 4, 5, 3, 1
. Quindi li cambiamo in questo modo, e puoi vedere 1, 2, 3, 4, 5
. Quindi facciamo la stessa cosa con le altre pile, e poi mettiamo le pile in ordine e guardiamo! Sono in ordine da 1 a 20!
Congratulazioni. Hai appena insegnato a un gruppo di bambini i principi di base di un algoritmo adattivo quicksort! Puoi andare un po 'più in profondità di quello a seconda della maturità mentale, ma andare molto oltre questo punto richiede una certa comprensione della logica formale.
Per quanto riguarda la dimostrazione della sua complessità, è più complicato. È una delle cose che richiede una logica formale e in primo luogo dovranno comprendere i principi di base della notazione big-O. All'inizio potresti voler trattenere quella parte.