第1个回答 2012-07-13
意思就是如果有2047个数,二分查找定位一个数最多需要11次(2^11-1=2047,2的11次幂减1是2047),同理在4096个数中定位一个数最多需要12次(2^12是12个2相乘)。因为2047<4000<4096,所以在4000个数中定位一个数最多需要的次数比11多,不大于12,而且肯定是整数,所以只能是12次。
第2个回答 2012-07-13
升序排列,将表等分为二,假设所要查找的元素为A,将A与表中间的数作比较,若中间的数等于A,查找完毕;若中间的数小于A,那么表的前半部分所有元素均小于A,A必然在表的后半部分;将后半部分的所有元素当作一个新表,再对它做同样的处理。若中间的数大于A,那么处理前半个表。求取最大比较次数,那么要求所有的元素都进行过排除,进行n次比交后剩余未进行比较排除的元素数最多为M/2^n向上取整(M为总个数),最终除法运算结果小于时比较完毕。因此,只进行n次比较最多能确定2^n-1个元素中是否存在所需元素。
第3个回答 2012-07-13
呵呵,这个像数据结构里的二叉树,先找中间那个数,如果要找的数比他小,就向左查找,反之向右查找,这样依次迭代,就可见次数肯定是2的指数幂啊,2^11-1=2047, 2^12-1=4095,2047<4000<4095 所以应该是12次啊。
第4个回答 2012-07-13
所谓二分法,每次都与中间数值比较大小,由于大小顺序一定,所以可以根据目标值与中间数字的大小关系确定,目标在中间值的前边还是后边,然后再取前半部的中间值(或者后半部的中间值)比较,以此循环,直至找到为止,次数最多就是找完以后发现不存在这个数,所以次数与2的多少次幂有关系,你可以先用10以内的画图看一下就发现规律了,看百度百科里二分法的解释可以