对分查找算法资料.pptx

对分查找算法 有一个数在1~100之间,请大家用最少的次数来猜出这个数。你会先猜几? 如果我告诉你这个数是15, 按照刚才的逻辑,几次可以猜到这个数呢? 在刚才的沟通中,其实隐藏着一个非常经典的算法—对分查找 对分查找实施原理 (1)对分查找是效率很高的查找方法, 但被查找的数据必须是有序的。 (2)首先将查找的数与有序数组内处于中间位置的数据比较, 如果中间位置上的数与查找的数不同, 根据有序性,就可确定应该在数组的前半部分还是后半部分继续查找。 (3)在新确定的范围内,继续按上述方法进行查找,直到获得最终结果。 key=48时对分查找处理过程 思考两个问题: ①d(mid)key时, 新查找的范围为下半部分,i和j的变化规律是怎样的? ②如果要找的是52,最后i、 j、 mid分别是多少? key=17时对分查找处理过程 思考: 当d(mid)key时,新查找的范围在哪里?i和j如何变化? 总结:如果d(mid)key,新查找范围为上半部分,i值不变,j=mid-1。 key=20时对分查找处理过程 总结: ①找到了查找会结束。 ②在i=j时重复查找,如果还是找 不到, 查找也会结束。 对分查找的过程 对各种情况进行归纳总结 (1)key与d(mid)的大小比较影响i、j取值的规律: i的取值规律:如果d(mid)key,那么i=mid+1。 j的取值规律:如果d(mid)k

文档评论(0)

1亿VIP精品文档

相关文档