Quicksort'u anlamak oldukça kolaydır, eğer temel sayma ve bölme 2'yi anlarlarsa. Bir grup X flash kart yapın, 1 - X olarak adlandırın ve karıştırın. İşte açıklama:
Tamam, burada (diyelim ki 20) kart destemiz var. Onları sıraya koymak istiyoruz, bu yüzden 1 önce, sonra 2, sonra 3, vb. İşte bunu yapmanın çok hızlı bir yolu.
İlk olarak, bu desteden geçelim ve iki kazık yapalım. 20'nin yarısı 10'dur, bu yüzden sağdaki bu kazıkta 10'dan büyük herhangi bir şey ve soldaki bu kazıkta daha küçük bir şey gider. (İlerlerken gösterdiğinizden emin olun.)
Şimdi aynı şeyi daha küçük yığınlarla yapalım. 10'un yarısı nedir? (Birisi "beş!" Der) Doğru! Yani sağdaki bu kazıkta 5'ten büyük olan herhangi bir şey, soldaki bu kazıkta daha küçük olan herhangi bir şey.
Ve burada, 10'dan büyük bir grubumuz var. 10'un yarısı 5 ve 10 artı 5 nedir? (Birisi "on beş!" Der) Doğru! Yani 15'ten büyük olan herhangi bir şey sağdaki bu yığına girer ve 15'ten küçük olan herhangi bir şey soldaki bu yığına girer.
Ve şimdi kazıklar kolayca bakabileceğiniz ve sıraya koyabileceğiniz kadar küçülüyor. Bak, işte burada 2, 4, 5, 3, 1
. Onları bu şekilde değiştiriyoruz ve görebilirsiniz 1, 2, 3, 4, 5
. Öyleyse aynı şeyi diğer kazıklarla yapalım ve sonra kazıkları sıraya koyduk ve bakıyoruz! 1'den 20'ye kadar sıradalar!
Tebrikler. Bir grup çocuğa uyarlanabilir bir çabuk sıralama algoritmasının temel prensiplerini öğrettiniz! Zihinsel olgunluğa bağlı olarak bundan biraz daha derine inebilirsiniz, ancak bu noktanın çok ötesine geçmek için resmi mantık anlayışı gerekir.
Karmaşıklığını kanıtlamaya gelince, bu daha zordur. Resmi mantık gerektiren şeylerden biridir ve ilk etapta big-O notasyonunun temel ilkelerini anlamak zorunda kalacaklardır. İlk başta o kısımdan uzak durmak isteyebilirsiniz.