Quicksort thực sự khá dễ hiểu, nếu họ hiểu cách đếm và chia cơ bản cho 2. Tạo một loạt thẻ flash X, đánh số chúng 1 - X và xáo trộn nó. Sau đây là lời giải thích:
OK, chúng tôi đã có bộ bài (giả sử 20) thẻ ở đây. Chúng tôi muốn sắp xếp chúng theo thứ tự, vì vậy 1 là đầu tiên, sau đó là 2, sau đó là 3, v.v. Đây là một cách rất nhanh để làm điều đó.
Đầu tiên, chúng ta hãy đi qua bộ bài này và tạo ra hai đống từ nó. Một nửa số 20 là 10, vì vậy, bất cứ thứ gì lớn hơn 10 đều nằm trong đống này ở bên phải và bất cứ thứ gì nhỏ hơn đều nằm trong đống này ở bên trái. (Hãy chắc chắn để chứng minh khi bạn đi.)
Bây giờ, hãy làm điều tương tự với các cọc nhỏ hơn. Một nửa của 10 là gì? (Ai đó nói "năm!") Đúng vậy! Vì vậy, bất cứ điều gì lớn hơn 5 đi trong đống này ở bên phải, và bất cứ điều gì nhỏ hơn đi trong đống này ở bên trái.
Và ở đây, chúng ta đã có một nhóm lớn hơn 10. Vậy một nửa của 10 là 5, và 10 cộng 5 là gì? (Ai đó nói "mười lăm!") Đúng vậy! Vì vậy, bất cứ điều gì lớn hơn 15 đi trong đống này ở bên phải, và bất cứ điều gì nhỏ hơn 15 đi trong đống này ở bên trái.
Và bây giờ các cọc đang trở nên đủ nhỏ để bạn có thể dễ dàng nhìn vào chúng và sắp xếp chúng theo thứ tự. Hãy nhìn xem, ở đây chúng ta đã có 2, 4, 5, 3, 1
. Vì vậy, chúng tôi chỉ cần chuyển đổi chúng như thế này, và bạn có thể thấy 1, 2, 3, 4, 5
. Vì vậy, hãy làm điều tương tự với các cọc khác, và sau đó chúng ta chỉ cần đặt các cọc theo thứ tự, và nhìn! Họ theo thứ tự từ 1 đến 20!
Xin chúc mừng. Bạn vừa dạy cho một đám trẻ những nguyên tắc cơ bản của thuật toán quicksort thích ứng! Bạn có thể đi sâu hơn một chút tùy thuộc vào sự trưởng thành về tinh thần, nhưng đi xa hơn điểm này đòi hỏi một số hiểu biết về logic hình thức.
Đối với việc chứng minh sự phức tạp của nó, đó là khó khăn hơn. Đó là một trong những điều đòi hỏi logic chính thức và họ sẽ phải hiểu các nguyên tắc cơ bản của ký hiệu big-O ngay từ đầu. Bạn có thể muốn giữ phần đó lúc đầu.