O Quicksort é realmente muito fácil de entender, se eles entenderem a contagem e a divisão básicas por 2. Faça um monte de X cartões flash, numere-os 1 - X e embaralhe-os. Então aqui está a explicação:
OK, temos este baralho (digamos 20) aqui. Queremos colocá-los em ordem, então 1 é o primeiro, depois 2, depois 3 e assim por diante. Aqui está uma maneira muito rápida de fazer isso.
Primeiro, vamos passar por esse baralho e fazer duas pilhas dele. Metade de 20 é 10; portanto, qualquer coisa maior que 10 fica nessa pilha à direita e qualquer coisa menor fica nessa pilha à esquerda. (Certifique-se de demonstrar à medida que avança.)
Agora, vamos fazer o mesmo com as pilhas menores. O que é metade dos 10? (Alguém diz "cinco!") Isso mesmo! Portanto, qualquer coisa maior que 5 vai nessa pilha à direita e qualquer coisa menor fica nessa pilha à esquerda.
E por aqui, temos o grupo que é maior que 10. Então metade de 10 é 5 e o que é 10 mais 5? (Alguém diz "quinze!") Isso mesmo! Portanto, qualquer coisa maior que 15 vai nessa pilha à direita e qualquer coisa menor que 15 vai nessa pilha à esquerda.
E agora as pilhas estão ficando pequenas o suficiente para que você possa olhá-las facilmente e colocá-las em ordem. Olha, aqui temos 2, 4, 5, 3, 1
. Então, nós apenas trocamos isso assim, e você pode ver 1, 2, 3, 4, 5
. Então, vamos fazer a mesma coisa com as outras pilhas, e depois colocamos as pilhas em ordem e olhe! Eles estão em ordem de 1 a 20!
Parabéns. Você acabou de ensinar a várias crianças os princípios básicos de um algoritmo adaptável de quicksort! Você pode ir um pouco mais fundo do que isso, dependendo da maturidade mental, mas ir muito além desse ponto requer alguma compreensão da lógica formal.
Quanto a provar sua complexidade, isso é mais complicado. É uma das coisas que requer lógica formal, e eles terão que entender os princípios básicos da notação big-O em primeiro lugar. Você pode adiar essa parte primeiro.