本次探究内容是算法中的“二分法”,“二分法”是分治策略的典型应用,分治策略是将一个难以直接解决的大问题分割成一些比较小的同类问题,各个击破,最终达到解决问题的目的。二分查找又叫折半查找,通过与中点位置的元素作比较,排除不能的数据区间,每一次比较后都可以将查找区间缩小一半,提高查找效率,在最坏情况下,最大查找次数为2**n>=待查找数据个数,n即为查找次数。前提是待查找内容是有序且不重复的序列,核心是左右边界值的调整和查找条件的判定。
【活动—】探究查找次数问题
1.采用二分查找法在数列3,9,16,25,33,47,56中查找数字33时,需查找的次数为()。
解析:在二分查找中,最大查找次数通用公式为2**n>=总数据量,题中待查总数据为7个,即2**n>=7,从而求得查找次数n 为3。
2.(变式练习)假设某电子字典是采用二分法来查找单词的,每查找一个中间值并进行大小比较约需0.1秒,则在有10000个单词的单词库中找到某个单词所需要的时间最多不超过多少秒?
解析:核心知识点依然为2**n>=10000,先求得查找次数为14,进而求得总时间为14*0.1=1.4秒,在查找次数基础上的变式拓展。