有序数列的数据结构优化

💡 原文中文,约2700字,阅读约需7分钟。
📝

内容提要

本文讨论了实体ID的保存和内部数据结构的优化问题,介绍了使用间接索引和有序数组的方法。作者尝试了B树和跳表等优化方法,但最终放弃。对于实体数量较少的情况,直接使用2字节的内部ID即可。作者还提出了一种结合了B树和跳表思想的新的数据结构,通过分组和循环队列提高插入和删除效率。最后,作者用C语言实现了该数据结构并进行了性能测试。

🎯

关键要点

  • 讨论了实体ID的保存和内部数据结构的优化问题。

  • 使用间接索引保存24bit ID以节省空间。

  • 有序数组实现了O(1)的随机访问和O(Log N)的查找时间。

  • 尝试了将数据按固定32或256个元素分组的优化方法。

  • 最终放弃了复杂的实现,因实际Entity数量较少。

  • 考虑到插入和删除效率低,提出了优化方案。

  • B树和跳表是经典的插入和删除优化方法。

  • 设计了一种结合B树和跳表思想的新数据结构。

  • 新结构通过分组和循环队列提高插入和删除效率。

  • 支持致密型和稀疏型分组以管理不同类型的ID。

  • 用C语言实现了该数据结构并进行了性能测试,随机访问效率与平坦数组相当。

➡️

继续阅读