การเรียงลำดับการเปรียบเทียบแบบสุ่มที่เหมาะสมที่สุด


12

ดังนั้นเราทุกคนรู้ว่าต้นไม้เปรียบเทียบเปรียบเทียบของจำนวนการเปรียบเทียบที่แย่ที่สุดโดยอัลกอริธึมการเรียงลำดับการเปรียบเทียบ ไม่สามารถใช้กับการเรียงลำดับการเปรียบเทียบแบบสุ่ม (ถ้าเราวัดการเปรียบเทียบที่คาดไว้สำหรับอินพุตกรณีที่แย่ที่สุด) ตัวอย่างเช่นสำหรับn = 4ขอบเขตล่างที่กำหนดขึ้นคือการเปรียบเทียบห้าแบบ แต่อัลกอริธึมแบบสุ่ม (สุ่มเปลี่ยนทิศทางอินพุตจากนั้นใช้การเรียงแบบผสาน) ทำได้ดีกว่าโดยมี4 2log2n!n=4เปรียบเทียบความคาดหวังสำหรับอินพุตทั้งหมด423

ผูกพันโดยไม่มีเพดานจะยังคงใช้ในกรณีที่สุ่มโดยข้อโต้แย้งข้อมูลทฤษฎีและมันสามารถทำให้แน่นเล็กน้อยถึง k + 2 ( n ! - 2 k )log2n! สิ่งนี้ตามมาเพราะมีอัลกอริธึมที่เหมาะสมที่สุดที่สุ่มอนุญาตการป้อนข้อมูลจากนั้นใช้ต้นไม้ตัดสินใจ (กำหนดขึ้น) และต้นไม้ตัดสินใจที่ดีที่สุด (ถ้ามี) เป็นต้นไม้ที่ใบไม้ทั้งหมดอยู่ในสองระดับติดต่อกัน

k+2(n!2k)n!, where k=log2n!.

เกิดอะไรขึ้นถ้ามีสิ่งใดที่รู้เกี่ยวกับขอบเขตของปัญหานี้ สำหรับทุกจำนวนสุ่มของการเปรียบเทียบ (ในความคาดหวังสำหรับการป้อนข้อมูลที่เลวร้ายที่สุดกรณีสำหรับขั้นตอนวิธีการที่ดีที่สุด) อยู่เสมออย่างเคร่งครัดดีกว่าขั้นตอนวิธีการกำหนดที่ดีที่สุด (เป็นหลักเพราะn !ไม่เคยมีอำนาจของทั้งสอง) . แต่จะดีกว่ามากแค่ไหน?n>2n!


lg(n!)+o(n)

คำตอบ:


4

เนื่องจากคำถามของคุณคือ: "อะไรที่เป็นที่รู้จัก นี่คือบางสิ่ง:

http://arxiv.org/abs/1307.3033

logn!+cnc


nlogn1.415nnlogn1.399n

ฉันไม่มีความเชี่ยวชาญเหตุผลเดียวที่ฉันรู้เกี่ยวกับเรื่องนี้คือ John Iacono ฉันคิดว่ามันเกี่ยวข้องกับความผันผวนตามวิธีการปิด n กำลัง (4/3 ครั้ง) ของ 2 ถ้าคุณดูการวิเคราะห์ที่หน้า 71 ที่นี่link.springer.com/content/pdf /10.1007%2FBF01934989.pdfขอบเขต -1.415n ที่ดูเหมือนจะเก็บไว้ก็ต่อเมื่อ n = floor ((4/3) 2 ^ k) สำหรับจำนวนเต็ม k บางที -1.329n ที่ผูกไว้ใน Knuth นั้นดีที่สุดสำหรับ n ทั้งหมด?
Pat Morin

มีความผันผวนอย่างแน่นอน แต่ฉันคิดว่า (4/3) 2 ^ k เป็นกรณีที่แย่ที่สุดและดีกว่าสำหรับกรณีอื่น ๆ
David Eppstein
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.