จริง ๆ แล้ว Quicksort นั้นง่ายต่อการเข้าใจถ้าพวกเขาเข้าใจการนับพื้นฐานและการหารด้วย 2 ทำการ์ดแฟลช X จำนวนหนึ่งจำนวนพวกเขา 1 - X แล้วสับเปลี่ยน แล้วนี่คือคำอธิบาย:
ตกลงเรามีไพ่สำรับจำนวน 20 ใบที่นี่ เราต้องการที่จะทำให้พวกเขาอยู่ในลำดับดังนั้น 1 เป็นครั้งแรกจากนั้น 2 จากนั้น 3 และอื่น ๆ นี่เป็นวิธีที่รวดเร็วในการทำ
ก่อนอื่นเรามาผ่านสำรับนี้และแยกออกเป็นสองกอง ครึ่งหนึ่งของ 20 คือ 10 ดังนั้นอะไรก็ตามที่ใหญ่กว่า 10 ในกองนี้ทางด้านขวาและอะไรก็ตามที่เล็กกว่าในกองนี้ทางซ้าย (อย่าลืมสาธิตให้เห็นในขณะที่คุณไป)
ทีนี้มาทำสิ่งเดียวกันกับกองเล็ก ๆ กัน ครึ่งหนึ่งของ 10 อะไร (มีคนพูดว่า "ห้า!") ถูกต้อง! ดังนั้นสิ่งที่มีขนาดใหญ่กว่า 5 ไปในกองนี้ทางด้านขวาและมีขนาดเล็กกว่าในกองนี้ทางซ้าย
และตรงนี้เราได้กลุ่มที่ใหญ่กว่า 10 ดังนั้นครึ่งหนึ่งของ 10 คือ 5 และ 10 บวก 5 คืออะไร? (มีคนพูดว่า "สิบห้า!") ถูกต้อง! อะไรก็ตามที่มีขนาดใหญ่กว่า 15 ไปในกองนี้ทางด้านขวาและอะไรก็ตามที่เล็กกว่า 15 ไปในกองนี้ทางซ้าย
และตอนนี้กองเล็ก ๆ น้อย ๆ ที่คุณสามารถดูและวางไว้อย่างเป็นระเบียบ 2, 4, 5, 3, 1
ดูที่นี่เราได้ ดังนั้นเราก็เปลี่ยนพวกเขารอบ ๆ 1, 2, 3, 4, 5
เช่นนี้และคุณสามารถเห็น งั้นลองทำสิ่งเดียวกันกับกองอื่น ๆ แล้วเราก็วางกองตามลำดับแล้วดู! พวกเขาอยู่ในลำดับ 1-20!
ขอแสดงความยินดี คุณเพิ่งสอนเด็ก ๆ เกี่ยวกับหลักการพื้นฐานของอัลกอริทึม quicksort ที่ปรับได้! คุณสามารถไปได้ลึกกว่านั้นเล็กน้อยขึ้นอยู่กับวุฒิภาวะทางจิตใจ แต่การก้าวไปไกลกว่าจุดนี้ต้องใช้ความเข้าใจในตรรกะที่เป็นทางการ
สำหรับการพิสูจน์ความซับซ้อนนั้นเป็นเรื่องยาก มันเป็นหนึ่งในสิ่งที่ต้องใช้ตรรกะอย่างเป็นทางการและพวกเขาจะต้องเข้าใจหลักการพื้นฐานของสัญกรณ์โอใหญ่ในครั้งแรก คุณอาจต้องการระงับส่วนนั้นในตอนแรก