黑马程序员---Java语言基础8

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

二分法查找  
             
      二分法思想是取中,比较  :  
              1)求有序序列arr 的中间位置mid 。 2 )k 为要查找的数字。  
              若arr[mid] == k ,查找成功;  
              若arr[mid] > k ,在前半段中继续进行二分查找;  
              若arr[mid] < k ,则在后半段中继续进行二分查找。  
      假如有一组数为3、12、24、36、55、68、75、88 要查给定的值k=24 。可设三个变量low、mid 、high 分别指向数据的上界,中间和下界,mid=                                     (low+high )/2.  
       1)开始令low=0               (指向3 ),high=7            (指向88 ),则mid=3                 (指向36 )。因为k<mid ,故应在前半段中查找。  
       2 )令新的high=mid-1=2 (指向24 ),而low=0  (指向3 )不变,则新的mid=1  (指向12)。 此时k>mid ,故确定应在后半段中查找。  
       3 )令新的 low=mid+1=2  (指向24 ),而high=2    (指向24 )不变,则新的mid=2 ,此时k=arr[mid] ,查找成功。 如果要查找的数不是数列中的数,例如k=25 ,当第四次判断时,k>mid[2] ,在后边半段查找,令low=mid+1 ,即low=3(指向36),high=2       (指向24 )出现low>high 的情况,表示查找不成功。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值