ทั้งสองของแหล่งที่มาของคุณดูที่ "เลวร้ายที่สุดกรณีที่คาดว่าเวลาทำงาน" ของฉันเดาว่านี่หมายถึงความต้องการเวลาที่คาดหวังซึ่งแตกต่างจากกรณีที่เลวร้ายที่สุดO(nlogn).
quicksort มักจะมีความต้องการเวลาที่เลวร้ายที่สุดกรณีที่แน่นอนของ ) กรณีที่เลวร้ายที่สุดเกิดขึ้นเมื่อในทุกขั้นตอนขั้นตอนพาร์ทิชันแยกnมีความยาวอาร์เรย์ลงในอาร์เรย์ขนาด1และn - 1 การเลือกองค์ประกอบ "โชคร้าย" นี้ต้องใช้O ( n ) การโทรซ้ำเพื่อนำไปสู่กรณีที่เลวร้ายที่สุดO ( n 2 )O(n2)n1n−1O(n)O(n2)
การเลือก pivot การสุ่มแบบสุ่มหรือการสับแบบอาเรย์ก่อนการเรียงมีผลกระทบของการเรนเดอร์ตัวพิมพ์เล็กที่สุดที่ไม่น่าเป็นไปได้โดยเฉพาะอย่างยิ่งสำหรับอาร์เรย์ขนาดใหญ่ ดูวิกิพีเดียเพื่อพิสูจน์ว่าที่คาดว่าต้องการเวลา ) แหล่งอ้างอิงอื่นกล่าวว่า "ความน่าจะเป็นที่ quicksort จะใช้การเปรียบเทียบเป็นกำลังสองเมื่อเรียงลำดับอาร์เรย์ขนาดใหญ่บนคอมพิวเตอร์ของคุณน้อยกว่าความน่าจะเป็นที่คอมพิวเตอร์ของคุณจะถูกฟ้าผ่า"O(nlogn)
แก้ไข:
ตามความคิดเห็นของ Bangye คุณสามารถกำจัดลำดับการเลือกเดือยที่แย่ที่สุดโดยเลือกองค์ประกอบค่ามัธยฐานเป็นเดือย เนื่องจากการหาค่ามัธยฐานนั้นใช้เวลาสิ่งนี้จะทำให้ประสิทธิภาพของกรณีที่แย่ที่สุดΘ ( n log n ) อย่างไรก็ตามเนื่องจาก quicksort แบบสุ่มไม่น่าจะสะดุดกับกรณีที่เลวร้ายที่สุดดังนั้นตัวแปร Quicksort แบบหาค่ามัธยฐานที่กำหนดได้ของไม่ค่อยมีการใช้บ่อยนักO(n)Θ(nlogn)