ประเด็นของคำถามนี้ไม่ได้เป็นการอภิปรายถึงข้อดีของอัลกอริทึมการเรียงลำดับอื่น ๆ - แน่นอนว่ามีคำถามอื่น ๆ อีกมากมายที่ทำเช่นนี้ คำถามนี้เกี่ยวกับชื่อ เหตุใด Quicksort จึงเรียกว่า "Quicksort" แน่นอนว่ามันเป็น "เร็ว" ส่วนใหญ่ แต่ไม่เสมอไป ความเป็นไปได้ของการเสื่อมสภาพไปยัง O (N ^ 2) เป็นที่รู้จักกันดี มีการแก้ไข Quicksort มากมายที่ช่วยลดปัญหานี้ แต่กรณีที่นำกรณีที่แย่ที่สุดมาสู่ O (n log n) ที่รับประกันจะไม่เรียกว่า Quicksort อีกต่อไป (เช่น Introsort)
ฉันแค่สงสัยว่าทำไมอัลกอริธึมการเรียงลำดับที่รู้จักกันดีทั้งหมดนี่เป็นสิ่งเดียวที่สมควรได้รับชื่อ "ด่วน" ซึ่งไม่ได้อธิบายว่าอัลกอริทึมทำงานอย่างไร แต่เร็วแค่ไหน (ปกติ) การรวมกันเรียกว่าเพราะมันรวมข้อมูล Heapsort เรียกว่าเพราะใช้ฮีป Introsort ได้รับชื่อจาก "Introspective" เนื่องจากตรวจสอบประสิทธิภาพของตัวเองเพื่อตัดสินใจว่าเมื่อใดที่จะเปลี่ยนจาก Quicksort เป็น Heapsort ในทำนองเดียวกันสำหรับคนที่ช้ากว่า - Bubblesort, Insertion Sort, Selection Selection ฯลฯ พวกมันทั้งหมดตั้งชื่อตามวิธีการทำงานของมัน ข้อยกเว้นอื่น ๆ ที่ฉันนึกได้คือ "Bogosort" ซึ่งเป็นเรื่องตลกที่ไม่มีใครใช้จริง ๆ ในทางปฏิบัติ เหตุใด Quicksort จึงไม่เรียกสิ่งที่อธิบายเพิ่มเติมเช่น "การจัดเรียงพาร์ติชัน" หรือ "การเรียงลำดับ Pivot" ซึ่งอธิบายสิ่งที่มันทำจริง? มันไม่ใช่กรณีของ "มาที่นี่ก่อน" การควบรวมกิจการได้รับการพัฒนา 15 ปีก่อน Quicksort (1945 และ 1960 ตามลำดับตาม Wikipedia)
ฉันเดาว่านี่เป็นคำถามเชิงประวัติศาสตร์มากกว่าการเขียนโปรแกรม ฉันแค่อยากรู้ว่ามันได้ชื่อมา - มันเป็นเพียงการตลาดที่ดีหรือไม่?
What's in a name? that which we call a rose By any other name would smell as sweet;
หรือว่าเป็นเพียงอย่างรวดเร็ว นอกจากนี้ความเป็นไปได้ของการเสื่อมสภาพไปยัง O (N ^ 2) มีโอกาสเกิดขึ้นเล็กน้อยและ N LogN ค่อนข้างดีสำหรับอัลกอริทึมแม้ว่าความจริงที่ว่าเรามีอัลกอริทึมเร็วกว่าในปัจจุบัน นอกจากนี้เมื่อถึงเวลาที่บางสิ่งที่เร็วขึ้นมามันก็สายเกินไปทุกคนก็เรียกมันว่า Quicksort!