欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java算法中的歸并排序算法代碼實(shí)現(xiàn)

 更新時(shí)間:2023年12月12日 08:41:12   作者:warybee  
這篇文章主要介紹了Java算法中的歸并排序算法代碼實(shí)現(xiàn),歸并排序使用的是分治思想(Divide and Conquer),分治,顧名思義,就是分而治之,是將一個(gè)大問(wèn)題分解成小的子問(wèn)題來(lái)解決,需要的朋友可以參考下

Java歸并排序算法

1、排序原理

歸并排序使用的是分治思想(Divide and Conquer),分治,顧名思義,就是分而治之,是將一個(gè)大問(wèn)題分解成小的子問(wèn)題來(lái)解決。小的子問(wèn)題解決了,大問(wèn)題也就解決了。

歸并排序的核心思想是:如果要排序一個(gè)數(shù)組,先把數(shù)組從中間分成前后兩部分,然后再分解,直到每個(gè)子序?qū)χ兄皇R粋€(gè)元素,最后通過(guò)遞歸,層層合并。

在這里插入圖片描述

2、代碼實(shí)現(xiàn)

public static int[] mergeSort(int[] array) {        if (array.length <=1) return array;        //取數(shù)組的中間位置        int mid = array.length>>1;        //數(shù)組拆分        int[] left = Arrays.copyOfRange(array, 0, mid);        int[] right = Arrays.copyOfRange(array, mid, array.length);        //遞歸調(diào)用        int[] result=merge(mergeSort(left), mergeSort(right));        return result;    }    /**     *  合并,     * @param left  拆分后左側(cè)數(shù)組     * @param right 拆分后右側(cè)數(shù)組     * @return     */    public static int[] merge(int[] left, int[] right) {        int[] result = new int[left.length + right.length];        int i=0,j=0; // i用來(lái)標(biāo)識(shí)左側(cè)數(shù)組 , j用來(lái)標(biāo)識(shí)右側(cè)數(shù)組        for (int index = 0; index < result.length; index++) {            //如果i 大于左側(cè)數(shù)組,說(shuō)明左側(cè)已經(jīng)沒(méi)有多余的數(shù)組,將剩余的數(shù)據(jù)拷貝到臨時(shí)數(shù)組            if (i >= left.length) {                result[index] = right[j++];            }            //如果j大于右側(cè)數(shù)組,說(shuō)明右側(cè)已經(jīng)沒(méi)有多余的數(shù)組,將剩余的數(shù)據(jù)拷貝到臨時(shí)數(shù)組            else if (j >= right.length) {                result[index] = left[i++];            }            //比較兩個(gè)數(shù)組,如果左側(cè)大于右側(cè)數(shù)組,就將右側(cè)數(shù)組放入到臨時(shí)數(shù)組            else if (left[i] > right[j]) {                result[index] = right[j++];            }            else{//就將左側(cè)數(shù)組放入到臨時(shí)數(shù)組                result[index] = left[i++];            }        }        return result;    }

到此這篇關(guān)于Java算法中的歸并排序算法代碼實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Java歸并排序算法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實(shí)現(xiàn)下載文件的6種方式

    Java實(shí)現(xiàn)下載文件的6種方式

    本文主要介紹了Java實(shí)現(xiàn)下載文件的6種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Java?HashSet添加?遍歷元素源碼分析

    Java?HashSet添加?遍歷元素源碼分析

    這篇文章主要為大家詳細(xì)介紹了HashSet、HashMap底層添加、遍歷元素的機(jī)制,追蹤并分析源碼,文中的示例代碼講解詳細(xì),希望對(duì)大學(xué)有所幫助
    2022-07-07
  • SpringMvc切換Json轉(zhuǎn)換工具的操作代碼

    SpringMvc切換Json轉(zhuǎn)換工具的操作代碼

    SpringBoot切換使用goolge的Gson作為SpringMvc的Json轉(zhuǎn)換工具,本文給大家講解SpringMvc切換Json轉(zhuǎn)換工具的操作代碼,感興趣的朋友一起看看吧
    2024-02-02
  • Java對(duì)象類型的判斷詳解

    Java對(duì)象類型的判斷詳解

    這篇文章主要介紹了Java對(duì)象類型的判斷,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Java 設(shè)計(jì)模式之責(zé)任鏈模式及異步責(zé)任鏈詳解

    Java 設(shè)計(jì)模式之責(zé)任鏈模式及異步責(zé)任鏈詳解

    顧名思義,責(zé)任鏈模式(Chain of Responsibility Pattern)為請(qǐng)求創(chuàng)建了一個(gè)接收者對(duì)象的鏈。這種模式給予請(qǐng)求的類型,對(duì)請(qǐng)求的發(fā)送者和接收者進(jìn)行解耦。這種類型的設(shè)計(jì)模式屬于行為型模式
    2021-11-11
  • Java如何通過(guò)反射獲取Constructor、Field、Method對(duì)象

    Java如何通過(guò)反射獲取Constructor、Field、Method對(duì)象

    反射指的是對(duì)象的反向處理操作,根據(jù)對(duì)象取得對(duì)象的來(lái)源信息,在反射的世界里面,看重的不再是一個(gè)對(duì)象,而是對(duì)象身后的組成,下面這篇文章主要給大家介紹了關(guān)于Java如何通過(guò)反射獲取Constructor、Field、Method對(duì)象的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • 關(guān)于Springboot打成JAR包后讀取外部配置文件的問(wèn)題

    關(guān)于Springboot打成JAR包后讀取外部配置文件的問(wèn)題

    這篇文章主要介紹了關(guān)于Springboot打成JAR包后讀取外部配置文件的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Java超詳細(xì)分析講解哈希表

    Java超詳細(xì)分析講解哈希表

    哈希表是一種根據(jù)關(guān)鍵碼去尋找值的數(shù)據(jù)映射結(jié)構(gòu),該結(jié)構(gòu)通過(guò)把關(guān)鍵碼映射的位置去尋找存放值的地方,說(shuō)起來(lái)可能感覺(jué)有點(diǎn)復(fù)雜,我想我舉個(gè)例子你就會(huì)明白了,最典型的的例子就是字典
    2022-06-06
  • Java中隊(duì)列Queue和Deque的區(qū)別與代碼實(shí)例

    Java中隊(duì)列Queue和Deque的區(qū)別與代碼實(shí)例

    學(xué)過(guò)數(shù)據(jù)結(jié)構(gòu)的,一定對(duì)隊(duì)列不陌生,java也實(shí)現(xiàn)了隊(duì)列,下面這篇文章主要給大家介紹了關(guān)于Java中隊(duì)列Queue和Deque區(qū)別的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • 淺談圖片上傳利用request.getInputStream()獲取文件流時(shí)遇到的問(wèn)題

    淺談圖片上傳利用request.getInputStream()獲取文件流時(shí)遇到的問(wèn)題

    下面小編就為大家?guī)?lái)一篇淺談圖片上傳利用request.getInputStream()獲取文件流時(shí)遇到的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11

最新評(píng)論