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

java算法之二分查找法的實(shí)例詳解

 更新時(shí)間:2017年08月10日 08:38:07   作者:aspook  
這篇文章主要介紹了java算法之二分查找法的實(shí)例詳解的相關(guān)資料,這里提供簡(jiǎn)單實(shí)例幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下

java算法之二分查找法的實(shí)例詳解

原理

假定查找范圍為一個(gè)有序數(shù)組(如升序排列),要從中查找某一元素,如果該元素在此數(shù)組中,則返回其索引,否則返回-1。通過(guò)數(shù)組長(zhǎng)度可取出中間位置元素的索引,將其值與目標(biāo)值比較,如果中間位置元素值大于目標(biāo)值,則在左部分進(jìn)行查找,如果中間位置值小于目標(biāo)值,則在右部分進(jìn)行查找,如此循環(huán),直到結(jié)束。二分查找算法之所以快是因?yàn)樗鼪](méi)有遍歷數(shù)組的每個(gè)元素,而僅僅是查找部分元素就能找到目標(biāo)或確定其不存在,當(dāng)然前提是查找范圍為有序數(shù)組。

Java的簡(jiǎn)單實(shí)現(xiàn)

package me.geed.algorithms; 
 
public class BinarySearch { 
 
  /** 
   * 從一個(gè)有序數(shù)組(如升序)中找到值為key元素 
   * @param key 
   * @param array 
   * @return 如果找到目標(biāo)元素,則返回其在數(shù)組中的索引,否則返回-1 
   */ 
  public static int find(int key, int[] array){ 
    int low = 0; 
    int high = array.length - 1; 
    while (low <= high) { 
      int mid = low + (high - low) / 2; 
      if (array[mid] > key) { 
        high = mid - 1; 
      } else if (array[mid] < key) { 
        low = mid + 1; 
      } else { 
        return mid; 
      }       
    } 
    return -1;    
  } 
   
  public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    int[] array = {2, 3, 5, 9, 10, 13, 23, 45, 78, 89, 100, 128, 256}; 
    System.out.println("目標(biāo)元素索引值:" + BinarySearch.find(9, array));     
    System.out.println("目標(biāo)元素索引值:" + BinarySearch.find(26, array)); 
  } 
 
} 

輸出結(jié)果為:

目標(biāo)元素索引值:3 
目標(biāo)元素索引值:-1 

二分查找算法的時(shí)間復(fù)雜度

假設(shè)范圍數(shù)組長(zhǎng)度為N,則二分查找的時(shí)間復(fù)雜度為O(logN)

以上就是java算法中二分查找的實(shí)例詳解,如有疑問(wèn)請(qǐng)留言或到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Java實(shí)現(xiàn)簡(jiǎn)單的彈球游戲

    Java實(shí)現(xiàn)簡(jiǎn)單的彈球游戲

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單的彈球游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-12-12
  • java如何獲取本機(jī)IP地址

    java如何獲取本機(jī)IP地址

    這篇文章主要為大家詳細(xì)介紹了java如何獲取本機(jī)IP地址,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Springboot 多module打包方案示例詳解

    Springboot 多module打包方案示例詳解

    在使用Springboot進(jìn)行多模塊項(xiàng)目開(kāi)發(fā)時(shí),可能會(huì)遇到模塊間依賴不存在的問(wèn)題,本文介紹了兩種主要的解決方案,這些方法有助于生成可執(zhí)行的jar包,并確保模塊間正確依賴,適用于多層項(xiàng)目結(jié)構(gòu)中的有效管理和打包,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • 使用ftpClient下載ftp上所有文件解析

    使用ftpClient下載ftp上所有文件解析

    最近項(xiàng)目需要寫(xiě)個(gè)小功能,需求就是實(shí)時(shí)下載ftp指定文件夾下的所有文件(包括子目錄)到本地文件夾中,保留文件到目錄路徑不變。今天小編給大家分享使用ftpClient下載ftp上所有文件的方法,需要的的朋友參考下吧
    2017-04-04
  • Java21新特性Record?Patterns示例詳解

    Java21新特性Record?Patterns示例詳解

    這篇文章主要為大家介紹了Java21新特性Record?Patterns示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Java Spring使用hutool的HttpRequest發(fā)送請(qǐng)求的幾種方式

    Java Spring使用hutool的HttpRequest發(fā)送請(qǐng)求的幾種方式

    文章介紹了Hutool庫(kù)中用于發(fā)送HTTP請(qǐng)求的工具,包括添加依賴、發(fā)送GET和POST請(qǐng)求的方法,以及GET請(qǐng)求的不同參數(shù)傳遞方式,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • 小議Java中final關(guān)鍵字使用時(shí)的注意點(diǎn)

    小議Java中final關(guān)鍵字使用時(shí)的注意點(diǎn)

    final關(guān)鍵字代表著最后、不可改變,無(wú)論是在用final修飾類、修飾方法還是修飾變量時(shí),都要注意內(nèi)存分配的問(wèn)題.這里來(lái)小議Java中final關(guān)鍵字使用時(shí)的注意點(diǎn):
    2016-06-06
  • 解析ConcurrentHashMap: get、remove方法分析

    解析ConcurrentHashMap: get、remove方法分析

    ConcurrentHashMap是由Segment數(shù)組結(jié)構(gòu)和HashEntry數(shù)組結(jié)構(gòu)組成。Segment的結(jié)構(gòu)和HashMap類似,是一種數(shù)組和鏈表結(jié)構(gòu),今天給大家普及java面試常見(jiàn)問(wèn)題---ConcurrentHashMap知識(shí),一起看看吧
    2021-06-06
  • IDEA的run maven方式啟動(dòng)步驟詳解

    IDEA的run maven方式啟動(dòng)步驟詳解

    這篇文章主要介紹了IDEA的run maven方式啟動(dòng)步驟,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 千萬(wàn)別這樣使用Arrays.asList詳解

    千萬(wàn)別這樣使用Arrays.asList詳解

    這篇文章主要給大家介紹了關(guān)于為什么說(shuō)千萬(wàn)別這樣使用Arrays.asList()的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評(píng)論

宝坻区| 通道| 龙游县| 淄博市| 江津市| 和田市| 北辰区| 镇沅| 皋兰县| 札达县| 资中县| 台山市| 黎川县| 桐庐县| 尚义县| 安乡县| 五河县| 栾城县| 洪湖市| 逊克县| 罗江县| 霸州市| 白玉县| 汽车| 安化县| 航空| 晋城| 南木林县| 南漳县| 广西| 连江县| 宁城县| 定陶县| 正安县| 米脂县| 乌兰浩特市| 霍林郭勒市| 驻马店市| 青龙| 建水县| 静宁县|