โครงสร้างข้อมูลพจนานุกรมที่ใช้งานได้มีความสำคัญอะไรที่ต้องรู้
ต้นไม้ไบนารีสมดุลความสูงและความพยายามของพวกเขาเป็นประนีประนอมทุกรอบที่ดี นอกจากนี้:
อะไรคือข้อดีข้อเสียของวิธีการเหล่านี้?
ต้นไม้ไบนารีที่มีความสูงที่สมดุลและความพยายามของพวกมันคือการประนีประนอมที่ดีสำหรับกุญแจอะตอม การพยายามเหมือนกันสำหรับคีย์ที่เป็นลำดับเช่นคีย์สตริง
ต้นแพทริเซียสามารถเร็วขึ้นหลายครั้ง แต่อนุญาตให้ใช้คีย์จำนวนเต็มเท่านั้น
การแฮชสามารถทำได้เร็วกว่าต้นไม้ไบนารีที่สมดุลหลายเท่าโดยเฉพาะอย่างยิ่งถ้าการแฮ็ชมีราคาถูกกว่าการเปรียบเทียบและ polymorphism มีค่าใช้จ่าย (เช่นสตริงบน. NET) และการเขียนพอยน์เตอร์ลงในฮีปนั้นรวดเร็ว (เช่น VM เหมาะสำหรับภาษาที่จำเป็นมากกว่าภาษาที่ใช้งานได้) แฮชยังอนุญาตให้ใช้การกลายพันธุ์ภายในเป็นการปรับให้เหมาะสม
ต้นไม้สีแดงดำมีความสำคัญน้อยกว่าเพราะพวกเขาไม่ได้รับประโยชน์อย่างมีนัยสำคัญมากกว่าต้นไม้ที่มีความสูง แต่มีข้อเสียอย่างมีนัยสำคัญที่พวกเขาไม่อนุญาตให้มีสหภาพการแยกและความแตกต่างที่มีประสิทธิภาพ
ในทำนองเดียวกันต้นไม้นิ้วไม่ได้ดีขึ้นในทางปฏิบัติมาก
เมื่อใดที่จะใช้โครงสร้างข้อมูลที่จำเป็นมากขึ้น
เมื่อพจนานุกรมของคุณถูกเติมครั้งเดียวและใช้สำหรับการค้นหาเท่านั้นเช่นถูกตรึง
เมื่อคุณต้องการประสิทธิภาพ (ตารางแฮชที่เหมาะสมเช่น. NET Dictionary
มักเร็วกว่า 10-40 ×เร็วกว่าพจนานุกรมทั่วไปที่ใช้งานได้อย่างหมดจด)
เมื่อคุณต้องการดิกชันนารีที่อ่อนแอเนื่องจากไม่มีพจนานุกรมที่อ่อนแอที่ใช้งานได้จริง