红黑树和B树应用场景有何不同?
2者都是有序数据结构,可用作数据容器。
红黑树多用在内部排序,即全放在内存中的,微软STL的map和set的内部实现就是红黑树。
B树多用在内存里放不下,大部分数据存储在外存上时。因为B树层数少,因此可以确保每次操作,读取磁盘的次数尽可能的少。
在数据较小,可以完全放到内存中时,红黑树的时间复杂度比B树低。比如treemap。
反之,数据量较大,外存中占主要部分时,B树因其读磁盘次数少,而具有更快的速度。比如索引。
红黑树和B树应用场景有何不同?
2者都是有序数据结构,可用作数据容器。
红黑树多用在内部排序,即全放在内存中的,微软STL的map和set的内部实现就是红黑树。
B树多用在内存里放不下,大部分数据存储在外存上时。因为B树层数少,因此可以确保每次操作,读取磁盘的次数尽可能的少。
在数据较小,可以完全放到内存中时,红黑树的时间复杂度比B树低。比如treemap。
反之,数据量较大,外存中占主要部分时,B树因其读磁盘次数少,而具有更快的速度。比如索引。