完成蓝墨云班课上的三种查找算法练习任务;并截图(类代码,测试代码,运行结果代码)发送至蓝墨云算法
返回目录数组
顺序查找 、折半查找 及ASL 此前在第五周学习总结及第6周课堂实践中阐述过,这里再也不作多余的叙述。数据结构
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
元素 | 25 | 38 | 17 | 41 | 21 |
p:通常为素数,设散列表空间大小为n,则1.1n<p<1.7n为宜,这样能够尽量避免发生冲突。函数
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
元素 | 60 | 17 | 29 |
dⅰ 决定了不一样的解决冲突方案:学习
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
元素 | 60 | 17 | 29 | 38 |
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
元素 | 38 | 60 | 17 | 29 |
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
元素 | 38 | 60 | 17 | 29 |
原理:遇到冲突时,会在原地址新建一个空间,而后以链表节点的形式插入到该空间里。测试
索引 | 元素 | ||
---|---|---|---|
0 | |||
1 | |||
2 | |||
3 | |||
4 | |||
5 | 60 | → | 38 |
6 | 17 | ||
7 | 29 | ||
8 | |||
9 | |||
10 |
返回目录设计
散列函数: H(k) = k%11。htm
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
元素 | 11 | 78 | 10 | 1 | 3 | 2 | 4 | 21 |
查找次数 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
ASL = (1 +2 +3 +4 +5 +6 +7 +8)/ 8 = 4.5
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
元素 | 11 | 78 | 10 | 1 | 3 | 2 | 4 | 21 |
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|---|
元素 | 1 | 2 | 3 | 4 | 10 | 11 | 21 | 78 |
查找次数 | 3 | 2 | 3 | 1 | 3 | 2 | 3 | 4 |
ASL = (1x1 + 2x2 + 4x3 + 1x4) / 8 = 2.625
索引 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
元素 | 11 | 78 | 1 | 3 | 2 | 4 | 21 | 10 | |||
查找次数 | 1 | 1 | 2 | 1 | 3 | 2 | 8 | 1 |
ASL = (1 + 1 + 2 + 1 + 3 + 2 + 8 + 1 ) / 8 = 2.375
链地址法:
查找次数(头) | 查找次数(节点) | 索引 | 元素 | ||
---|---|---|---|---|---|
1 | 0 | 11 | |||
1 | 2 | 1 | 78 | → | 1 |
1 | 2 | 2 | |||
1 | 3 | 3 | |||
1 | 4 | 4 | |||
5 | |||||
6 | |||||
7 | |||||
8 | |||||
9 | |||||
1 | 2 | 10 | 10 | → | 21 |
ASL = (6x1 + 2x2)/8 = 1.25