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

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

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

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)容復(fù)制回原數(shù)組
    while (tmp <= right) {
      data[tmp] = tmpArr[tmp++];
    }
    System.out.println(Arrays.toString(data));
  }

}

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

相關(guān)文章

  • 什么是 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 批量文件壓縮導(dǎo)出并下載到本地示例代碼

    Java 批量文件壓縮導(dǎo)出并下載到本地示例代碼

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

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

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

    Mybatis批量修改的操作代碼

    這篇文章主要介紹了Mybatis批量修改的操作代碼,包括整體批量修改的詳細(xì)代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    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)一維護和后端技術(shù)部門的規(guī)范制定,本文就來介紹一下
    2024-10-10
  • 簡單了解SpringMVC常用組件作用解析

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

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

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

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

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

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

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

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

最新評論

林州市| 靖西县| 蒙山县| 淳安县| 平远县| 湖口县| 正阳县| 民丰县| 亚东县| 襄樊市| 芦山县| 富川| 绍兴市| 嵩明县| 建平县| 汉源县| 雷山县| 喀什市| 彰化县| 嵊州市| 云和县| 枣庄市| 柘荣县| 桓台县| 乌海市| 宁波市| 陕西省| 通山县| 大足县| 西林县| 沙湾县| 绵阳市| 邢台市| 达日县| 平舆县| 张家川| 鄂尔多斯市| 沭阳县| 青田县| 新河县| 黑山县|