假定存储块能放10个记录或者99个键和100个指针,再假定B树结点的平均充满度为
70%;即有69个键和70个指针。我们可以用B树作为几种不同结构的一部分。对下面
描述的每种结构,确定:
(1)1 000 000个记录的文件所需的总块数;
(2)检索一
个给定键值的记录所需的平均磁盘I/O数。可以假定最初在主内存中不存在任何东
西,并且查找键是记录的主键。a)数据文件是按查找键排序的顺序文件,每块存放10个记录。B树为稠密索引。
b)同a一样,但组成数据文件的记录没有特定顺序;每块存放10个记录。
c)同a 一样,但B树为稀疏索引。
d)B树的叶节点中中不放指向数据记录的指针,而是保存记录本身。每块可存放10个记录,但平均每个叶节点的充满度为70%,即每个叶节点存入7个记录。 请给出详细步骤,谢了急!!!!!!!
70%;即有69个键和70个指针。我们可以用B树作为几种不同结构的一部分。对下面
描述的每种结构,确定:
(1)1 000 000个记录的文件所需的总块数;
(2)检索一
个给定键值的记录所需的平均磁盘I/O数。可以假定最初在主内存中不存在任何东
西,并且查找键是记录的主键。a)数据文件是按查找键排序的顺序文件,每块存放10个记录。B树为稠密索引。
b)同a一样,但组成数据文件的记录没有特定顺序;每块存放10个记录。
c)同a 一样,但B树为稀疏索引。
d)B树的叶节点中中不放指向数据记录的指针,而是保存记录本身。每块可存放10个记录,但平均每个叶节点的充满度为70%,即每个叶节点存入7个记录。 请给出详细步骤,谢了急!!!!!!!
但是很奇怪,你这个键值和索引怎么不一一对应啊
(2)好久没有看数据结构了,稠密索引和稀疏索引不记得了,你找本数据结构的书,上面都有对检索效率进行分析的,基本上就是套公式
只不过你这需要转一下,你这个访问数需要有多次i/o操作(根据公式算),还有访问记录需要加1次i/o操作。
=============================================================
个人感觉你这个问题
问的很不好,因为树的检索效率分很多种情况:最好效率,最差效率,平均效率,你问的检索效率是哪一种
还有你没有说明索引,指针,记录到底是什么关系
我只是猜的每个记录有一个索引,每个索引对应一个指针指向这个记录
还有你没有解释说明为什么指针和索引不是一一对应的
============================================================
另外建议你好好看看数据结构的书,因为查书就可以获得公式,这个还不怎么涉及到程序,单单套公式计算就可以了
那么还需要加上1000000/70次建立树的i/o访问量
================================================
描述不清很难回答
==============================================
坐等楼下