โครงสร้างข้อมูลพร้อมการค้นหาแทรกและลบในเวลาตัดจำหน่าย


25

มีโครงสร้างข้อมูลเพื่อรักษารายการที่สั่งซื้อซึ่งสนับสนุนการดำเนินการต่อไปนี้ในเวลาตัดจำหน่ายหรือไม่O(1)

  • GetElement (k) : ส่งคืนองค์ประกอบที่ของรายการk

  • InsertAfter (x, y) : ใส่องค์ประกอบใหม่ y ลงในรายการทันทีหลังจาก x

  • ลบ (x) : ลบ x ออกจากรายการ

สำหรับการดำเนินการสองครั้งล่าสุดคุณสามารถสมมติได้ว่า x ถูกกำหนดให้เป็นตัวชี้ไปยังโครงสร้างข้อมูลโดยตรง InsertElement ส่งคืนตัวชี้ที่สอดคล้องกันสำหรับ y InsertAfter (NULL, y) แทรก y ที่จุดเริ่มต้นของรายการ

ตัวอย่างเช่นเริ่มต้นด้วยโครงสร้างข้อมูลที่ว่างเปล่าการดำเนินการต่อไปนี้จะอัพเดตรายการที่สั่งซื้อตามที่แสดงด้านล่าง:

  • InsertAfter (NULL, a) [a]
  • InsertAfter (NULL, b) [b, a]
  • InsertAfter (b, c) [b, c, a]
  • InsertAfter (a, d) [b, c, a, d]
  • ลบ (c) [b, a, d]

หลังจากการอัปเดตห้ารายการนี้ GetElement (2) ควรกลับ d และ GetElement (3) ควรกลับข้อผิดพลาด


2
ในอัลกอริทึมที่เหมาะสมที่สุดสำหรับการจัดทำดัชนีรายการและการจัดอันดับชุดย่อย (1989) ฉันพบวิธีแก้ปัญหากับปัญหานี้ Ω(ล.โอก. nล.โอก. ล.โอก. n)
AT

2
@ ราฟาเอล: ฉันคิดว่าเขาหมายถึงองค์ประกอบที่จะเรียกว่าถ้าโครงสร้างข้อมูลเป็นอาร์เรย์ อาร์เรย์สนับสนุนการดำเนินการแรกในเวลาแต่ไม่ใช่ครั้งที่สอง รายการที่เชื่อมโยงสนับสนุนการดำเนินการที่สองในเวลาแต่ไม่ใช่ครั้งแรก O ( 1 ) O ( 1 )A[k]O(1)O(1)
JeffE

2
นอกจากนี้ยังมีความสมดุลต้นไม้ไบนารีสนับสนุนการดำเนินงานทั้งในเวลา O(เข้าสู่ระบบn)
JeffE

1
@ ราฟาเอล: แก้ไขเพื่อชี้แจง
JeffE

2
@JeffE อาร์เรย์แบบไดนามิกสนับสนุนสองรายการแรกในเวลาที่ตัดจำหน่าย ( cs.uwaterloo.ca/research/tr/1999/09/CS-99-09.pdf )O(1)
Diego

คำตอบ:


33

NO

Fredman และ Saks พิสูจน์ให้เห็นว่าใด ๆโครงสร้างข้อมูลที่สนับสนุนการดำเนินงานเหล่านี้ต้องมีอย่างน้อยตัดจำหน่ายครั้งต่อการดำเนินงาน (นี่คือการอ้างอิง [1] ในกระดาษโดย Dietz ที่คุณพูดถึงในความคิดเห็นแรกของคุณ) ขอบเขตที่ต่ำกว่าจะเก็บไว้ในโมเดลการคำนวณเซลล์โพรบที่มีประสิทธิภาพมากซึ่งจะพิจารณาเฉพาะจำนวนที่อยู่หน่วยความจำที่แตกต่างกันเท่านั้น อัลกอริทึมΩ(เข้าสู่ระบบn/เข้าสู่ระบบเข้าสู่ระบบn)

หากไม่มีข้อสันนิษฐานเพิ่มเติมเกี่ยวกับการดำเนินการอัปเดตและการสืบค้นโครงสร้างข้อมูลของ Dietz นั้นดีที่สุด (อย่างน้อยก็ขึ้นอยู่กับปัจจัยคงที่)


3
@ AT: ขอบเขตนั้นไม่เคย "พิสูจน์ผิด" มีสถานการณ์ที่มันไม่ได้ใช้ แต่เป็นคำสั่งที่แตกต่างกันโดยสิ้นเชิง!
Raphael

5
@ AT: ขอบเขตการเรียงลำดับล่างได้รับการพิสูจน์ในรูปแบบการคำนวณที่อ่อนแอกว่ามากนั่นคือแผนผังการตัดสินใจแบบไบนารี ขอบเขตถูก "พิสูจน์ว่าผิด" โดยการพัฒนาอัลกอริทึมที่เร็วกว่าซึ่งไม่สามารถอธิบายได้ว่าเป็นแผนผังการตัดสินใจแบบไบนารี เพื่อพิสูจน์ขอบเขตที่ไม่ถูกต้องของ Fredman และ Saks คุณจะต้องออกแบบอัลกอริทึมที่เร็วกว่าซึ่งไม่สามารถเข้าถึงหน่วยความจำได้ ขอให้โชคดี
JeffE

@JeffE และ Raphael; โปรดตรวจสอบคำตอบอื่น ๆ ของฉันและยืนยัน / ปฏิเสธผลของฉันเมื่อคุณมีโอกาส ขอบคุณ
AT

6

ดูเหมือนสิ่งกีดขวางได้รับการเอาชนะโดยการปรับเปลี่ยนการวิเคราะห์จากเทคนิคโครโนกราฟΩ(เข้าสู่ระบบnเข้าสู่ระบบเข้าสู่ระบบn)

ใหม่ [ลด] ผูกพันได้รับการพิสูจน์แล้วว่าสำหรับปัญหาที่คล้ายกันในรูปแบบเซลล์สอบสวน [1] จากการอ่านบทความนั้น มันเป็นความเข้าใจของฉันที่ผูกพันที่ใช้กับปัญหาการเป็นตัวแทนรายการด้วยΩ(เข้าสู่ระบบn)


[1] Patrascu, Mihai และ Erik D. Demaine “ ขอบเขตล่างลอการิทึมในโมเดล Cell-Probe” SIAM J. Comput 35, ไม่ 4 (เมษายน 2549): 932–963 ดอย: 10.1137 / S0097539705447256


1
ขอบเขตล่างนี้ถือสำหรับคำคงที่ขนาดในขณะที่ก่อนหน้านี้ขอบเขตล่างสำหรับคำลอการิทึมขนาด Ω(เข้าสู่ระบบn/เข้าสู่ระบบเข้าสู่ระบบn)
Yuval Filmus

จริง นอกจากนี้คุณสามารถยืนยันได้ว่าข้อ จำกัด นี้ใช้กับปัญหาการแสดงรายการด้วยคำที่มีขนาดคงที่หรือไม่?
AT

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