Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

ต้นไม้ค้นหานิ้วแบบไดนามิกในโครงสร้างข้อมูล


  • โครงสร้างข้อมูลการค้นหาด้วยนิ้วแบบไดนามิกควรดำเนินการแทรกและลบองค์ประกอบที่ตำแหน่งที่กำหนดโดยนิ้วนอกเหนือจากการค้นหาด้วยนิ้วด้วย
  • Finger search tree ถูกกำหนดให้เป็นตัวแปรของ B-trees ที่รองรับการค้นหาด้วยนิ้วในเวลา O(log d) และอัปเดตในเวลา O(1) โดยถือว่ามีเพียง O(1) ที่เคลื่อนย้ายได้เท่านั้น
  • การเคลื่อนผ่านตำแหน่งนิ้ว d ต้องใช้เวลา O(log d)
  • โครงสร้างการค้นหาด้วยนิ้ว (หมายถึงต้นไม้ AVL ต้นไม้สีแดง-ดำ) อาจพิจารณาจำนวนนิ้วคงที่หรือรองรับเฉพาะการอัปเดตในเวลาคงที่ที่ตัดจำหน่าย
  • มีการสร้างโครงสร้างที่รองรับจำนวนนิ้วตามอำเภอใจและมีการอัพเดตกรณีที่แย่ที่สุดแล้ว
  • โครงสร้างการค้นหาที่รองรับการอัปเดตในตำแหน่งที่กำหนดเองในกรณีที่แย่ที่สุดเวลา O(1) แต่รองรับเฉพาะการค้นหาในเวลา O (บันทึก n)
  • โครงสร้างที่รองรับการค้นหาเวลา O(log d) และการแทรกและการลบเวลา O(log dn)
  • แผนผังการค้นหาด้วยนิ้วใช้การแทรกเวลาคงที่ในกรณีที่เลวร้ายที่สุดและการลบเวลา O (log d n)
  • ตามวิธีแก้ปัญหาทางเลือกที่มีประสิทธิภาพด้านพื้นที่สำหรับระดับที่เชื่อมโยง (2,4)- ต้นไม้ อนุญาตให้ใช้นิ้วเดียว ซึ่งสามารถดำเนินการได้ด้วยต้นทุนประสิทธิภาพเดียวกันกับ (2,4)-ทรี ในโซลูชันนี้ ไม่จำเป็นต้องใช้ลิงก์ระดับและตัวชี้พาเรนต์ แต่จะมีการสร้างโครงสร้างข้อมูลพื้นที่ O(log n) แบบพิเศษขึ้นสำหรับนิ้วที่ช่วยให้ผ่านนิ้วได้อย่างมีประสิทธิภาพ
  • แผนผัง Splay ถูกกำหนดให้เป็นคลาสของทรีการค้นหาแบบไบนารีที่ปรับตัวเองได้ซึ่งสนับสนุนการค้นหา การแทรก และการลบในเวลา O (log n) ที่ตัดจำหน่าย ต้นไม้ที่แผ่ออกไปนั้นสามารถนำมาใช้เป็นต้นไม้ค้นหานิ้วที่มีประสิทธิภาพได้
  • ด้วยต้นทุนการเริ่มต้น O(n) ต้นทุนตัดจำหน่ายของการเข้าถึงที่ระยะทาง d จากการเข้าถึงครั้งก่อนในแผนผัง splay คือ O(log d) โดยที่การเข้าถึงประกอบด้วยการค้นหา การแทรก และการลบ
  • โปรดสังเกตว่าคำสั่งนี้ใช้เพียงนิ้วเดียว ซึ่งชี้ไปที่องค์ประกอบที่เข้าถึงล่าสุดเสมอ
  • โครงสร้างที่กล่าวถึงข้างต้นทั้งหมดสามารถใช้ได้กับเครื่องชี้ ซึ่งการดำเนินการเดียวที่อนุญาตในองค์ประกอบคือการเปรียบเทียบสององค์ประกอบ
  • สำหรับแบบจำลองการคำนวณ (RAM) เครื่องเข้าถึงโดยสุ่ม ระบบค้นหาด้วยนิ้วได้รับการพัฒนาโดยมีเวลาอัปเดตคงที่และเวลาค้นหา O(log d) ผลลัพธ์นี้ทำได้โดยการจัดตารางโครงสร้างต้นไม้ขนาดเล็ก แต่ดำเนินการเปรียบเทียบองค์ประกอบเท่านั้น