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

java 基本算法之歸并排序?qū)嵗a

 更新時間:2017年05月04日 08:36:06   投稿:lqh  
這篇文章主要介紹了java 基本算法之歸并排序?qū)嵗a的相關資料,需要的朋友可以參考下

java 基本算法之歸并排序?qū)嵗a

原理:歸并(Merge)排序法是將兩個(或兩個以上)有序表合并成一個新的有序表,

     * 即把待排序序列分為若干個子序列,每個子序列是有序的。
     * 然后再把有序子序列合并為整體有序序列。

實例代碼:

public class MergeSort {

  /**
   * 
   *
   *
   * @param args
   */
  public static void main(String[] args) {
    int a[] = { 49, 38, 65, 97, 76, 13, 27, 49, 78, 34, 12, 64, 5, 4, 62,
        99, 98, 54, 56, 17, 18, 23, 34, 15, 35, 25, 53, 51 };

    sort(a, 0, a.length - 1);
    System.out.println(Arrays.toString(a));

  }

  public static void sort(int[] data, int left, int right) {
    if (left < right) {
      // 找出中間索引
      int center = (left + right) / 2;
      // 對左邊數(shù)組進行遞歸
      sort(data, left, center);
      // 對右邊數(shù)組進行遞歸
      sort(data, center + 1, right);
      // 合并
      merge(data, left, center, right);
    }

  }

  public static void merge(int[] data, int left, int center, int right) {
    int[] tmpArr = new int[data.length];
    int mid = center + 1;
    // third記錄中間數(shù)組的索引
    int third = left;
    int tmp = left;
    while (left <= center && mid <= right) {
      // 從兩個數(shù)組中取出最小的放入中間數(shù)組
      if (data[left] <= data[mid]) {
        tmpArr[third++] = data[left++];
      } else {
        tmpArr[third++] = data[mid++];
      }

    }

    // 剩余部分依次放入中間數(shù)組
    while (left <= center) {
      tmpArr[third++] = data[left++];
    }
    while (mid <= right) {
      tmpArr[third++] = data[mid++];
    }

    // 將中間數(shù)組中的內(nèi)容復制回原數(shù)組
    while (tmp <= right) {
      data[tmp] = tmpArr[tmp++];
    }
    System.out.println(Arrays.toString(data));
  }

}

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

相關文章

  • 什么是 Java 的 CyclicBarrier(代碼示例)

    什么是 Java 的 CyclicBarrier(代碼示例)

    CyclicBarrier 是多線程協(xié)同的利器,適合需要多次同步的場景,本文通過代碼示例講解什么是 Java 的 CyclicBarrier,感興趣的朋友一起看看吧
    2025-03-03
  • java開發(fā)Dubbo注解Adaptive實現(xiàn)原理

    java開發(fā)Dubbo注解Adaptive實現(xiàn)原理

    這篇文章主要為大家介紹了java開發(fā)Dubbo注解Adaptive實現(xiàn)原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Java 批量文件壓縮導出并下載到本地示例代碼

    Java 批量文件壓縮導出并下載到本地示例代碼

    這篇文章主要介紹了Java 批量文件壓縮導出并下載到本地示例代碼,實現(xiàn)思路首先要把zip流寫入到http響應輸出流中,再把excel的流寫入zip流中,具體示例代碼,大家通過本文學習吧
    2017-12-12
  • java基于線程池和反射機制實現(xiàn)定時任務完整實例

    java基于線程池和反射機制實現(xiàn)定時任務完整實例

    這篇文章主要介紹了java基于線程池和反射機制實現(xiàn)定時任務的方法,以完整實例形式較為詳細的分析了Java定時任務的功能原理與實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Mybatis批量修改的操作代碼

    Mybatis批量修改的操作代碼

    這篇文章主要介紹了Mybatis批量修改的操作代碼,包括整體批量修改的詳細代碼,代碼簡單易懂,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2017-09-09
  • SpringBoot統(tǒng)一數(shù)據(jù)返回的方法實現(xiàn)

    SpringBoot統(tǒng)一數(shù)據(jù)返回的方法實現(xiàn)

    在前后端交互過程中,為了便于數(shù)據(jù)處理,后端數(shù)據(jù)需要進行統(tǒng)一封裝返回給前端,這種做法不僅方便前后端溝通,降低了溝通成本,還有助于項目的統(tǒng)一維護和后端技術部門的規(guī)范制定,本文就來介紹一下
    2024-10-10
  • 簡單了解SpringMVC常用組件作用解析

    簡單了解SpringMVC常用組件作用解析

    這篇文章主要介紹了簡單了解SpringMVC常用組件作用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • Java獲取resources下文件路徑的幾種方法及遇到的問題

    Java獲取resources下文件路徑的幾種方法及遇到的問題

    這篇文章主要給大家介紹了關于Java獲取resources下文件路徑的幾種方法及遇到的問題,在Java開發(fā)中經(jīng)常需要讀取項目中resources目錄下的文件或獲取資源路徑,需要的朋友可以參考下
    2023-12-12
  • Java中防止XSS攻擊的10種方法

    Java中防止XSS攻擊的10種方法

    這篇文章主要給大家介紹了關于Java中防止XSS攻擊的10種方法,XSS(Cross Site Scripting)攻擊是一種常見的網(wǎng)絡安全漏洞,文中給出了詳細的代碼示例,需要的朋友可以參考下
    2023-07-07
  • Java獲取請求頭、參數(shù)、路徑方式

    Java獲取請求頭、參數(shù)、路徑方式

    這篇文章主要介紹了Java獲取請求頭、參數(shù)、路徑方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03

最新評論

巴青县| 惠东县| 荆州市| 济阳县| 壤塘县| 花莲市| 乳山市| 连山| 胶南市| 雷波县| 尼玛县| 昌宁县| 牡丹江市| 民权县| 神木县| 调兵山市| 虎林市| 巴林右旗| 平谷区| 托克逊县| 镇赉县| 五家渠市| 西青区| 桂平市| 青河县| 成安县| 海口市| 阳东县| 南岸区| 九龙坡区| 九江县| 莱州市| 沁源县| 津市市| 河东区| 长岛县| 伽师县| 安龙县| 南乐县| 徐汇区| 湖北省|