การเรียงลำดับของรายการสามารถตรวจสอบได้โดยไม่ต้องเปรียบเทียบกับเพื่อนบ้านหรือไม่?


14

nรายการ -Item สามารถตรวจสอบได้ว่าเป็นเรียงโดยเปรียบเทียบทุกรายการให้กับเพื่อนบ้าน ในใบสมัครของฉันฉันจะไม่สามารถเปรียบเทียบทุกรายการกับเพื่อนบ้าน: บางครั้งการเปรียบเทียบจะอยู่ระหว่างองค์ประกอบที่อยู่ห่างไกล เนื่องจากรายการมีมากกว่าสามรายการและการเปรียบเทียบเป็นเพียงการดำเนินการที่ได้รับการสนับสนุนเท่านั้นไม่เคยมี "เครือข่าย" ของการเปรียบเทียบที่จะพิสูจน์ว่ารายการนั้นเรียงลำดับ แต่ขาดหายไปอย่างน้อยหนึ่งโดยตรงกับเพื่อนบ้าน เปรียบเทียบ?

อย่างเป็นทางการสำหรับการลำดับขององค์ประกอบeiฉันมีชุดของคู่ของดัชนี(j,k)ซึ่งผมทราบว่าej>ek , ej=ekหรือej<ek k มีคู่(l,l+1)ที่หายไปจากชุดการเปรียบเทียบ เป็นไปได้ไหมที่จะพิสูจน์ว่ามีการเรียงลำดับหรือไม่


1
บันทึกย่อในกรณีที่ทุกคนพบหน้านี้ในภายหลังพร้อมคำถามว่าคุณสามารถตรวจสอบรายการได้หรือไม่โดยไม่ต้องเปรียบเทียบอะไร เฉพาะในกรณีที่คุณสามารถวางข้อ จำกัด บางอย่างในอินพุตและ / หรือรู้บางอย่างเกี่ยวกับรูปร่างของอินพุต (เช่นการจัดเรียง Radix)
HammerN'Songs

อย่างไรก็ตามมีความเป็นไปได้ในการปรับจำนวนการเปรียบเทียบที่ใช้ในกรณีที่ไม่ได้เรียงลำดับ
สะสม

1
@ การคำนวณมีความเป็นไปได้จริงไหม? ควรเป็นเรื่องเล็กน้อยที่จะใช้โปรแกรมดังกล่าวและทำรายชื่อคู่กรณีที่มีความยาว n ซึ่งบังคับให้โปรแกรมทำการเปรียบเทียบ n-1 ดูเพิ่มเติมที่A Killer Adversary สำหรับ QuickSortซึ่งนำความคิดนี้ยิ่งไปกว่านั้นในการบังคับให้ quicksort เข้าสู่ส่วนที่ไม่ดีของการวิเคราะห์เชิงซีมโทติค
Daniel Wagner

@DanielWagner ใช่การเพิ่มประสิทธิภาพดังกล่าวจะต้องดำเนินการด้วยความเคารพต่อการป้อนข้อมูลที่คาดหวังของแอปพลิเคชันเฉพาะ
สะสม

อาจเป็นไปไม่ได้ แต่โปรดอธิบาย: คุณหมายถึงว่าคุณรู้เพียงการเปรียบเทียบแบบฟอร์ม (j, j + 1) ไม่ใช่แบบทั่วไป (j, k)? ตัวอย่างเช่นคุณเคยรู้จักการเปรียบเทียบดัชนีสองรายการ (j, j + 3) หรือไม่
Ron

คำตอบ:


34

(i,i+1)

1,2,,i1,i,i+1,i+2,,n1,2,,i1,i+1,i,i+2,,n

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.