二分查找失败最大比较次数,二分法查找的最大比较次数

  二分查找失败最大比较次数,二分法查找的最大比较次数

  内容实现过程的关键思想:最大最小比较次数的Python实现?线性搜索法1。实施流程示例:

  在序列表[10,20,30,40,50,60,70]中,用二分法求关键60。

  数值为1020304050607080下标01234567以上,编码为0到7。搜索过程如下:

  第一轮

  mid=(左/右)/2=(0 7)/2=3,「向下取整」

  -目标值60与下标为3的值40比较,4060,则left=mid 1=4;

  第二轮

  mid=(左右)/2=(4 ^ 7)/2=5,「向下取整」

  -目标值60与下标为5的60进行比较,60=60。返回下标5,算法结束。

  总共进行了两次比较。

  2.关键思想在使用二分搜索法之前,您必须确保阵列是有序的;两点每次按mid=(左右)/2向下取整;将目标值与下标为mid的值进行比较;如果目标值较大(较小),则left=mid 1(right=mid 1);直到成功找到目标值,停止。3.最大和最小比较次数最小比较次数为1,如[1,2,3]二分搜索法2。

  最大比较次数是log2(n) 1向下舍入,

  对于有序表,根据二分搜索法方法的定义,每次比较后问题规模会减少一半,所以2 k=n,解为k=log2(n)。因为最后只剩下一个元素,所以要执行搜索过程,所以1。

  4.Python实现了def BinarySearch(arr,Key):left=0 right=len(arr)-1 while left=right:mid=(left right)//2 if Key==arr[mid]:return mide lif(Key arr[mid]):right=mid-1 else:left=mid 1输出:

  5.vs线性搜索要在无序数组中查找指定的值,必须遍历整个数组,直到搜索成功。

  最小搜索次数为1,即第一个值为目标值;最大搜索次数为n,即最后一个值为目标值;平均搜索次数为(n ^ 1)/2,即(1 ^ 2 ^ 3…n)/n . 6。参考https://blog . csdn . net/u 010992313/article/details/89373480https://blog . csdn . net/iteye _ 3748/article/details/82677136https://blog . csdn . net/PICC _ Lu/URL=DG 930 wgj 8 grwergrrmxzzokxpitf 2 qochft zlqsr 2 kqzfdbuavweswoqnw 8 ckqfqbw

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: