从我读到的关于红黑树的所有信息来看,它们似乎是存储数据的最佳数据结构。
我试图建立一个数据库,我想知道,只是在红黑树的实现方面,我应该在哪里更加小心,我不应该做什么。
红-黑真的那么完美吗?
最佳答案
这取决于您需要如何查询和更新数据。例如,如果您不需要有序数据,哈希映射可能更好,因为它们具有(预期的)常量时间查找/插入而不是对数。即使您确实需要有序的数据,红/黑树也可能不是完美的,特别是如果您要实现一个基于磁盘的数据库。在基于磁盘的i/o中,与顺序块读取相比,查找是昂贵的,因此目标是最小化磁盘访问的数量。在这种情况下,b-树(或b+树,或b*树)更好-这些都是为存储在磁盘上时的速度而设计的。