algorithm - B-tree disk read requirement 解释想要

标签 algorithm b-tree

在维基百科 B 树的“搜索已排序文件的时间”部分,它说

With 100 records per block, the last 6 or so comparisons don't need to do any disk reads—the comparisons are all within the last disk block read.

https://en.wikipedia.org/wiki/B-tree#Time_to_search_a_sorted_file

问题:20次比较中,为什么最后6次比较不需要读盘?

最佳答案

最后 6 次比较都是针对读入内存的最后 100 条记录 block 进行的:2^6 = 64,并且 64 < 100。

B-tree:每次查找都会将之前的查找空间减半(参见“分而治之”)。到域缩小到该级别时,所有数据“在物理上非常接近”。在此示例中,这是在已读入内存的连续 100 条记录的单个 block 内,从而避免了额外的 IO 读取。

之前的 (14) 次比较很可能必须读取不同的 记录/记录 block ,这会导致 IO 读取,不包括缓存。

关于algorithm - B-tree disk read requirement 解释想要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47965612/

相关文章:

java - 对混合数据列表进行排序?

mysql - 递归循环 - 父/子树

database - 数据库管理系统一书中的 B+ 树解决方案

c# - 有谁知道我在哪里可以找到基于文件的 c# 多路 B 树类?

algorithm - 如何从 b 树中删除元素?

java - 如何使用数组(在 Java 中)平衡现有的随机二叉搜索树 (BST)?

string - 从源和结果字符串中查找加密算法

algorithm - 检查树是否具有交替属性

c# - 如何获得霍夫曼码的长度

data-structures - 什么时候选择RB树、B树还是AVL树?