最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)二分查找算法實例分析

 更新時間:2015年07月29日 17:48:45   作者:tolcf  
這篇文章主要介紹了Java實現(xiàn)二分查找算法,實例分析了二分查找算法的原理與相關實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了Java實現(xiàn)二分查找算法。分享給大家供大家參考。具體如下:

1. 前提:二分查找的前提是需要查找的數(shù)組必須是已排序的,我們這里的實現(xiàn)默認為升序

2. 原理:將數(shù)組分為三部分,依次是中值(所謂的中值就是數(shù)組中間位置的那個值)前,中值,中值后;將要查找的值和數(shù)組的中值進行比較,若小于中值則在中值前面找,若大于中值則在中值后面找,等于中值時直接返回。然后依次是一個遞歸過程,將前半部分或者后半部分繼續(xù)分解為三部分??赡苊枋龅貌皇呛芮宄羰遣焕斫饪梢匀ゾW(wǎng)上找。從描述上就可以看出這個算法適合用遞歸來實現(xiàn),可以用遞歸的都可以用循環(huán)來實現(xiàn)。所以我們的實現(xiàn)分為遞歸和循環(huán)兩種,可以根據(jù)代碼來理解算法

實現(xiàn)代碼:

public class BinarySearch {
 public static void main(String[] args){
 int searchArr[] = new int[1000000];
 for(int i=0;i<1000000;i++){
  searchArr[i]=i;
 }
   System.out.println(binSearch(searchArr,0,searchArr.length-1,99));
    System.out.println(binSearch(searchArr,99));
  }
//遞歸二分查找
  public static int binSearch(int arr[], int start,int end,int sear){
    int mid = (end-start)/2 + start;
    if(sear==arr[mid]){
      return mid;
    }
    if(start>=end){
      return -1;
    }else if(sear < arr[mid]){
      return binSearch(arr,0,mid-1,sear);
    }else if(sear >arr[mid]){
      return binSearch(arr,mid+1,end,sear);
    }
    return -1;
  }
//循環(huán)二分查找
  public static int binSearch(int arr[],int key){
    int mid = arr.length/2;
    int start = 0;
    int end = arr.length-1;
    while(start<=end){
      mid = (end-start)/2+start;
      if(key ==arr[mid]){
        return mid;
      }else if(key <= arr[mid]){
        end = mid-1;
      }else if(key >=arr[mid]){
        start = mid+1;
      }
    }
    return -1;
  }

效率比較:

循環(huán)二分查找算法的效率高于遞歸二分查找算法

希望本文所述對大家的java程序設計有所幫助。

相關文章

  • SpringBoot應用啟動內置Tomcat的過程源碼分析

    SpringBoot應用啟動內置Tomcat的過程源碼分析

    這篇文章主要介紹了SpringBoot應用啟動內置Tomcat的過程分析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • 關于SpringBoot中的XA事務詳解

    關于SpringBoot中的XA事務詳解

    這篇文章主要介紹了關于SpringBoot中的XA事務詳解,事務管理可以確保數(shù)據(jù)的一致性和完整性,同時也可以避免數(shù)據(jù)丟失和沖突等問題。在分布式環(huán)境中,XA?事務是一種常用的事務管理方式,需要的朋友可以參考下
    2023-07-07
  • java如何判斷一個數(shù)是否是素數(shù)(質數(shù))

    java如何判斷一個數(shù)是否是素數(shù)(質數(shù))

    這篇文章主要介紹了java如何判斷一個數(shù)是否是素數(shù)(質數(shù)),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java注解的Retention和RetentionPolicy實例分析

    Java注解的Retention和RetentionPolicy實例分析

    這篇文章主要介紹了Java注解的Retention和RetentionPolicy,結合實例形式分析了Java注解Retention和RetentionPolicy的基本功能及使用方法,需要的朋友可以參考下
    2019-09-09
  • Spring中@ExceptionHandler注解的使用方式

    Spring中@ExceptionHandler注解的使用方式

    這篇文章主要介紹了Spring中@ExceptionHandler注解的使用方式,@ExceptionHandler注解我們一般是用來自定義異常的,可以認為它是一個異常攔截器(處理器),需要的朋友可以參考下
    2024-01-01
  • DoytoQuery中的查詢映射方案詳解

    DoytoQuery中的查詢映射方案詳解

    這篇文章主要為大家介紹了DoytoQuery中的查詢映射方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • JavaMail郵件簡介及API概述第一篇

    JavaMail郵件簡介及API概述第一篇

    這篇文章主要為大家詳細介紹了JavaMail郵件簡介及API概述第一篇,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Java遞歸讀取文件例子_動力節(jié)點Java學院整理

    Java遞歸讀取文件例子_動力節(jié)點Java學院整理

    本文通過一段示例代碼給大家介紹了java遞歸讀取文件的方法,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-05-05
  • String中intern方法的使用場景詳解

    String中intern方法的使用場景詳解

    這篇文章主要給大家介紹了關于String中intern方法的使用場景,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Java異常處理操作 Throwable、Exception、Error

    Java異常處理操作 Throwable、Exception、Error

    這篇文章主要介紹了Java異常處理操作 Throwable、Exception、Error,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06

最新評論

清水县| 大邑县| 清徐县| 喜德县| 长海县| 平原县| 廊坊市| 大余县| 盐亭县| 甘德县| 凤城市| 潞城市| 肃宁县| 札达县| 乌兰浩特市| 东丰县| 博野县| 长白| 新平| 府谷县| 托里县| 额尔古纳市| 石首市| 朝阳市| 林芝县| 汤原县| 碌曲县| 雷州市| 临漳县| 罗定市| 松溪县| 绥阳县| 化德县| 隆昌县| 博乐市| 北流市| 固阳县| 广德县| 和平县| 建平县| 平阳县|