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

来源:互联网 发布:幂指函数求极限知乎 编辑:程序博客网 时间:2024/05/16 18:24

------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