一个文件包含了200个记录,若采用分块查找法,每块长度为4,则平均查找长度为(28)。
计算这个题目,它又没说是顺序查找还是折半查找所在块,
这类问题默认都来用顺序查询,需要要求折半回明确表示。
200/4=50块
(1+50)/2=25.5
(1+4)/2=2.5
这是查找成功的情况!
查找失败是(1+51+1+5)/2=29
如果一个文件包含了200个记录,每块长度为4,则需要50个块来存储所有记录。
在最坏情况下,如果要查找的记录位于最后一块,则需要遍历所有50个块才能找到记录。
块平均查找长度为(1+2+...+50)/50 = 25.5。
块内平均查找长度为(1+2+3+4)/4=2.5。
25.5+2.5=28。
如果我的回答对你有帮助,还望采纳!
因为 双向链表 是链表的一种特殊形式,所以这两者的常用方法也是一样的,只不过实现方式不一样,那么我再列举一下有哪些常用方法吧,如下表
方法 | 含义 |
---|---|
append() | 向双向链表尾部追加元素 |
insert() | 在双向链表的某个位置插入元素 |
get() | 获取双向链表对应位置的元素 |
indexOf() | 获取某元素在双向链表中的索引 |
update() | 修改双向链表中某个位置上的元素的值 |
removeAt() | 移除双向链表中某位置上的某元素 |
remove() | 移除双向链表中的某元素 |
isEmpty() | 判断双向链表内是否为空 |
size() | 返回双向链表内元素个数 |
toString() | 以字符串的形式展示双向链表内的所有元素 |
接下来就用 JavaScript
来实现一下以上这些方法