亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java 算法二分查找和折半查找

 更新時間:2017年05月19日 17:02:39   投稿:lqh  
這篇文章主要介紹了java 算法二分查找與折半查找的相關(guān)資料,需要的朋友可以參考下

 java 算法二分查找與折半查找

折半查找 :首先數(shù)組是已經(jīng)排好序的

實例代碼:

package com.hao.myrxjava;

/**
 * 折半查找 :首先數(shù)組是已經(jīng)排好序的
 *
 * @author zhanghaohao
 * @date 2017/5/15
 */

public class HalfDivision {

  /**
   * 循環(huán)實現(xiàn)
   *
   * @param array 排好序的數(shù)組
   * @param value 查找的值
   * @return value在array的位置
   */
  public static int halfDivision(int value, int[] array) {
    if (array == null || array.length == 0)
      throw new NullPointerException("array is null");
    int low = 0;
    int high = array.length - 1;
    int mid = (low+high)/2;
    while (array[mid] != value) {
      if (array[mid] > value)
        high = mid - 1;
      else
        low = mid + 1;
      if (low > high)
        return -1;
      mid = (low+high)/2;
      if (array[mid] == value)
        return mid;
    }
    return mid;
  }

  /**
   * 遞歸實現(xiàn)
   *
   * @param array 排好序的數(shù)組
   * @param value 查找的值
   * @param low 查找的起始位置
   * @param high 查找的末尾位置
   * @return value在array的位置
   */
  public static int halfDivision(int value, int[] array, int low, int high) {
    if (low > high)
      return -1;
    int mid = (low + high) / 2;
    if (array[mid] == value)
      return mid;
    else if (array[mid] > value)
      return halfDivision(value, array, low, mid - 1);
    else if (array[mid] < value)
      return halfDivision(value, array, mid+1, high);
    return -1;
  }
}

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • MyBatis映射器mapper快速入門教程

    MyBatis映射器mapper快速入門教程

    使用mapper接口的方式,不用寫接口實現(xiàn)類,直接完成數(shù)據(jù)庫操作,簡單方便。使用mapper接口,采用的是面向接口編程的思想,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-09-09
  • Java設(shè)計模式之適配器模式(Adapter模式)介紹

    Java設(shè)計模式之適配器模式(Adapter模式)介紹

    這篇文章主要介紹了Java設(shè)計模式之適配器模式(Adapter模式)介紹,本文講解了為何使用適配器模式、如何使用適配器模式等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • JAVA不使用線程池來處理的異步的方法詳解

    JAVA不使用線程池來處理的異步的方法詳解

    這篇文章主要介紹了JAVA不使用線程池來處理的異步的方法,在這個示例中,asyncTask方法創(chuàng)建了一個新的線程來執(zhí)行異步任務(wù),這個新線程會立即開始執(zhí)行,而主線程則會繼續(xù)執(zhí)行后續(xù)的代碼,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • Java調(diào)用UniHttp接口請求失敗的三種解決策略

    Java調(diào)用UniHttp接口請求失敗的三種解決策略

    在當(dāng)今數(shù)字化時代,不管是內(nèi)部系統(tǒng)之間還是跟外部系統(tǒng)的對接,接口調(diào)用已成為軟件開發(fā)中不可或缺的一部分,本文主要介紹了Java調(diào)用UniHttp接口請求失敗的三種解決策略,希望對大家有所幫助
    2025-09-09
  • 一篇文章帶你深入了解javaIO基礎(chǔ)

    一篇文章帶你深入了解javaIO基礎(chǔ)

    這篇文章主要介紹了java 基礎(chǔ)知識之IO總結(jié)的相關(guān)資料,Java中的I/O分為兩種類型,一種是順序讀取,一種是隨機(jī)讀取,需要的朋友可以參考下,希望對你有幫助
    2021-08-08
  • Java實現(xiàn)本地語音識別與熱點檢測詳解

    Java實現(xiàn)本地語音識別與熱點檢測詳解

    隨著語音交互技術(shù)的發(fā)展,如何高效地處理用戶的語音輸入成為許多應(yīng)用的重要課題,下面我們來聊聊如何使用java實現(xiàn)本地語音識別與熱點檢測,并集成阿里云智能語音服務(wù)吧
    2025-05-05
  • 詳解idea從git上拉取maven項目詳細(xì)步驟

    詳解idea從git上拉取maven項目詳細(xì)步驟

    這篇文章主要介紹了詳解idea從git上拉取maven項目詳細(xì)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java使用代理進(jìn)行網(wǎng)絡(luò)連接方法示例

    Java使用代理進(jìn)行網(wǎng)絡(luò)連接方法示例

    這篇文章主要介紹了Java使用代理進(jìn)行網(wǎng)絡(luò)連接方法示例,內(nèi)容十分詳細(xì),需要的朋友可以參考下。
    2017-09-09
  • Java使用NioSocket手動實現(xiàn)HTTP服務(wù)器

    Java使用NioSocket手動實現(xiàn)HTTP服務(wù)器

    本篇文章主要介紹了Java使用NioSocket手動實現(xiàn)HTTP服務(wù)器,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-05-05
  • 通過Java實現(xiàn)RSA加密與驗證的方法詳解

    通過Java實現(xiàn)RSA加密與驗證的方法詳解

    RSA是一種非對稱加密算法,是目前廣泛應(yīng)用于加密和數(shù)字簽名領(lǐng)域的一種加密算法,本文主要講述如何通過Java實現(xiàn)RSA加密與驗證,應(yīng)用場景為與其他平臺對接接口時,通過RSA加密和解密驗證請求的有效性,在對接時雙方互換公鑰,需要的朋友可以參考下
    2023-12-12

最新評論