ฮีปเรดิกซ์
เรดิกซ์ฮีป (Radix Heap)เป็นโครงสร้างข้อมูลที่ใช้ในการดำเนินการของคิวลำดับความสำคัญแบบโมโนโทน (Monotone Priority Queue)โดยสามารถจัดการชุดขององค์ประกอบที่กำหนดคีย์ให้ เวลาในการทำงานของการดำเนินการขึ้นอยู่กับความแตกต่างระหว่างคีย์ที่ใหญ่ที่สุดและคีย์ที่เล็กที่สุด หรือค่าคงที่ โครงสร้างข้อมูลนี้ประกอบด้วยบัคเก็ต (Bucket) จำนวนมาก ซึ่งขนาดของบัคเก็ตจะเพิ่มขึ้นแบบทวีคูณ
ข้อกำหนดเบื้องต้น
- คีย์ทั้งหมดเป็นจำนวนธรรมชาติ ;
- ปุ่มสูงสุด - ปุ่มต่ำสุดC สำหรับค่าคงที่ C;
- การดำเนินการ extract -minเป็นแบบโมโนโทนิก กล่าวคือ ค่าที่ส่งคืนโดย การเรียกใช้ extract-min ครั้งต่อๆ ไป จะเพิ่มขึ้นอย่างต่อเนื่อง
คำอธิบายโครงสร้างข้อมูล
สามสาขา ที่สำคัญที่สุด ได้แก่:
- อาร์เรย์ขนาดโดยมี 0 เป็นดัชนีต่ำสุด จะใช้เก็บกลุ่มข้อมูล (buckets);
- อาร์เรย์ขนาดโดยกำหนดให้ 0 เป็นดัชนีต่ำสุด ใช้สำหรับจัดเก็บขอบเขต (ล่าง) ของกลุ่มข้อมูล
- ใช้ได้กับแต่ละองค์ประกอบในกองนั้นก็คือถังที่ใช้เก็บมัน
แผนภาพด้านบนแสดงโครงสร้างข้อมูล โดยมีเงื่อนไขคงที่ดังต่อไปนี้:
- กุญแจใน: กุญแจในขึ้นหรือลงผ่านค่าในหรือจำกัด
- และสำหรับขนาดของถังจะเพิ่มขึ้นแบบทวีคูณ
สิ่งสำคัญคือต้องสังเกตการเติบโตแบบเลขชี้กำลังของขีดจำกัด (และด้วยเหตุนี้ช่วงที่ถังบรรจุได้) ด้วยวิธีนี้ การพึ่งพาแบบลอการิทึมของปริมาณสนามจะมีค่าเท่ากับ C ซึ่งเป็นความแตกต่างสูงสุดระหว่างค่าสำคัญสองค่า
การดำเนินงาน
ในระหว่างการเริ่มต้นระบบจะมีการสร้างถังว่างเปล่าและขอบเขตล่างขึ้นมาถูกสร้างขึ้น (ตามเงื่อนไขคงที่ข้อที่ 2); เวลาในการทำงาน.
ระหว่างการแทรกองค์ประกอบใหม่เคลื่อนที่เชิงเส้นจากขวาไปซ้ายผ่านถังและองค์ประกอบใหม่ด้วยถูกจัดเก็บไว้ในถังด้านซ้ายสำหรับสิ่งนั้นเวลาในการทำงาน.
สำหรับdecrease-keyขั้นแรกค่าของคีย์จะถูกลดลง (โดยตรวจสอบว่าสอดคล้องกับเงื่อนไขคงที่หรือไม่) จากนั้น...ฟิลด์นี้ใช้สำหรับระบุตำแหน่งขององค์ประกอบ และจะวนซ้ำไปทางซ้ายหากจำเป็น ในลักษณะเดียวกับ การดำเนินการแทรก เวลาในการ ทำงานคือ(คิดค่าเสื่อมราคา)
การ ดำเนินการ extract-minจะลบองค์ประกอบออกจากบัคเก็ตและส่งคืน หากถังหากถังเก็บข้อมูลยังไม่ว่างเปล่า การดำเนินการจะสิ้นสุดลง แต่ถ้าหากถังเก็บข้อมูลว่างเปล่าแล้ว ระบบจะค้นหาถังเก็บข้อมูลขนาดใหญ่ถัดไปที่ไม่ว่างเปล่า โดยพิจารณาจากองค์ประกอบที่เล็กที่สุดในถังเก็บข้อมูลนั้นติดตามและกำหนดให้เป็น k (จำเป็นต้องมีคุณสมบัติความเป็นเอกรูป) จากนั้น ตามเงื่อนไขคงที่ ขอบเขตของถังจะถูกกำหนดใหม่และองค์ประกอบจะถูกลบออกไปยังถังที่ก่อตัวขึ้นใหม่; เวลาในการทำงาน(คิดค่าเสื่อมราคา)
หากแสดงผล ฟิลด์นั้นได้รับการอัปเดตแล้ว
