ฉันไม่สามารถหาโครงสร้างข้อมูลนี้ได้ แต่ฉันไม่ใช่ผู้เชี่ยวชาญในสาขานี้
โครงสร้างใช้ชุดและโดยทั่วไปจะเป็นอาร์เรย์ขององค์ประกอบที่เทียบเคียงกับค่าคงที่ ค่าคงที่คือค่าต่อไปนี้ (กำหนดแบบเรียกซ้ำ):
อาเรย์ของความยาว 1 เป็นอาเรย์ผสาน
อาร์เรย์ที่มีความยาว 2 ^ n (สำหรับ n> 0) เป็นอาร์เรย์ผสาน iff:
- ครึ่งแรกเป็นอาร์เรย์ผสานและครึ่งหลังว่างเปล่าหรือ
- อาร์เรย์แรกเต็มและเรียงลำดับแล้วครึ่งปีหลังเป็นอาร์เรย์ผสาน
โปรดทราบว่าถ้าอาร์เรย์เต็มจะถูกจัดเรียง
ในการแทรกองค์ประกอบเรามีสองกรณี:
- หากครึ่งแรกไม่เต็มให้แทรกแบบเรียกซ้ำในครึ่งแรก
- หากครึ่งแรกเต็มให้แทรกแบบเรียกซ้ำในครึ่งหลัง
- หลังจากขั้นตอนแบบเรียกซ้ำถ้าทั้งอาร์เรย์เต็มแล้วให้แบ่งครึ่ง (ซึ่งจัดเรียง) แล้วปรับขนาดให้เป็นสองเท่าของความยาวดั้งเดิม
ในการค้นหาองค์ประกอบให้แบ่งเป็นสองส่วนโดยใช้การค้นหาแบบไบนารีเมื่ออาร์เรย์เต็ม (ควรมีประสิทธิภาพเนื่องจากมีมากที่สุดจากน้อยไปหามาก)
โครงสร้างสามารถถือเป็นแบบคงที่ของการรวมกัน
ยังไม่ชัดเจนว่าควรทำอย่างไรเพื่อลบองค์ประกอบ
แก้ไข: หลังจากปรับปรุงความเข้าใจโครงสร้าง