ASL测试 课题测试博客

已知线性表具有元素{5,13,19,21,37,56,64,75,80,88,92},如果使用折半查找法,ASL是多少?

知识点1:

  • 折半查找法:折半查找,又称作二分查找。这个查找的算法的特点,要求数据要是有序的。然后,利用这组有序的数据之间的关系,来进行折半的查找。比方说,这组数据是升序排列的。一开始,首先对比这组数据的中间的项与所找值的关系。若是所找值>中间值,则说明所找值在中间值的右侧,因此将这组数据的区间缩小为以中间值为最左侧的小区间。然后,继续用中间值进行比较,以此类推,最终肯定会找到在数组当中与之匹配的所找值,直到区间缩小为0还没找到,就只能是所找值不在数组当中。

知识点2:

  • ASL:是查找算法的查找成功时的平均查找长度的缩写。用于静态查找表中顺序表的查找。对于含有n个记录的表,查找成功时的平均查找长度为:


P(i)=查找表中第i个记录的概率
C(i)=关键字与给定值相等的第i个记录时,和给定值 进行过比较的关键字个数

解题步骤:

总结:

  • ASL与数组中具有元素的值无关,只与具有元素的个数有关
posted @ 2018-10-15 16:42  雲深不知处  阅读(373)  评论(0编辑  收藏  举报