课程:《程序设计与数据结构》
班级: 1723
姓名: 王禹涵
学号: 20172323
实验教师:王志强老师
测试日期:2018年10月
必修/选修: 必修算法
ASL测试
已知线性表具备元素{5,13,19,21,37,56,64,75,80,88,92},若是使用折半查找法,ASL是多少?数据结构
ASL: 所谓ASL是指在查找过程当中,为肯定记录在查找表中的位置,需和给定值进行比较的记录关键字个数的平均值。测试
解题:在本题中,线性表具备元素{5,13,19,21,37,56,64,75,80,88,92},能够画出计算机执行折半查找的顺序设计
位置 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
元素 | ... | 05 | 13 | 19 | 21 | 37 | 56 | 64 | 75 | 80 | 88 | 92 |
顺序 | ... | 3 | 4 | 2 | 3 | 4 | 1 | 3 | 4 | 2 | 3 | 4 |
二叉树如图所示
blog
因此顺序为1的结点一个,2有两个,3有四个,4有四个。
ASL=(1+2x2+3x4+4x4) / 11 = 33/11= 3排序
PS:查阅折半查找ASL的算法时,文章给出了另外一种ASL的算法
这种算法适用于n较大时的状况table