การแก้ปัญหานั้นผิด ปีศาจ [1; ผ่าน 2 วินาที 5.3.1] แสดงว่าห้าค่าสามารถเรียงลำดับได้โดยใช้การเปรียบเทียบเพียงเจ็ดรายการเท่านั้นเช่นขอบเขตล่างของ "ข้อมูลเชิงทฤษฎี" มีความเข้มงวดในกรณีนี้
คำตอบคือวิธีการที่ปรับให้เหมาะกับไม่ใช่อัลกอริทึมทั่วไป มันก็ไม่ค่อยดีเท่าไหร่ นี่คือโครงร่าง:n=5
เรียงสองคู่แรก
สั่งซื้อคู่ wrt องค์ประกอบที่มีขนาดใหญ่ตามลำดับของพวกเขา
เรียกผลลัพธ์ ; เรารู้ว่า< ข< งและค<[a,b,c,d,e]a<b<ddc<d
แทรกลงใน[ a , b , d ]e[a,b,d] ]
ใส่cลงในผลลัพธ์ของขั้นตอนที่ 3
ขั้นตอนแรกจะใช้เวลาสองการเปรียบเทียบอย่างชัดเจนอย่างใดอย่างหนึ่งที่สองเท่านั้น สองขั้นตอนสุดท้ายใช้เวลาสองการเปรียบเทียบกัน เราใส่เข้าไปในลิสต์สามองค์ประกอบในทั้งสองกรณี (สำหรับขั้นตอนที่ 4 โปรดทราบว่าเรารู้จากว่าc<dมีขนาดเล็กกว่าองค์ประกอบสุดท้ายของรายการในมือ) และเปรียบเทียบกับองค์ประกอบกลางก่อน นั่นทำให้การเปรียบเทียบทั้งหมดเจ็ดอย่างc
เนื่องจากฉันไม่เห็นวิธีการเขียนรหัสเทียม "ดี" ของที่นี่ดูที่นี่สำหรับการดำเนินการทดสอบ (และอ่านได้หวังว่า)
ปริญญาเอก วิทยานิพนธ์ (มหาวิทยาลัยสแตนฟอร์ด) โดย HB Demuth (1956)
ดูสิ่งนี้ด้วย การเรียงลำดับข้อมูลอิเล็กทรอนิกส์โดย HB Demuth (1985)
- จัดเรียงและค้นหา
โดย Donald E. Knuth; ศิลปะการเขียนโปรแกรมคอมพิวเตอร์ปีที่ 5 3 (2nd ed, 1998)