摘要:
二叉树如果数据都在内存中,我们就用平衡二叉查找树即可,这样效率最高。在前面的文章中我使用过红黑树(大致平衡的二叉查找树),500万节点时,搜索的深度可以达到50,也就是需要50次指针操作才能获取到数据。数据在内存中,50次间接寻址不是什么问题。B树但数据在硬盘中,50次间接寻址肯定就不行了,所以就必须减少树的深度。于是我们的树就不是二叉了,而是多叉,举例来说,如果是10叉,500万节点时,log105000000 = 7,这样与log25000000=27的深度有了大大的减少,而在实际应用中,应该是远远大于10叉,分叉多了,硬盘的代价下来了,但CPU的负担就上来了,因为要进行更多次的比较,不过 阅读全文