數(shù)組逆序序列

歸并排序

歸并排序是采用分治的一種排序方法:
先將元素分開(kāi)悼粮,也就長(zhǎng)度為1的有序序列。
合并有序序列,直至合并成一個(gè)數(shù)組
百度的代碼:

package algorithm;
 
public class MergeSort {
    // private static long sum = 0;
 
    /**
     *  * <pre>
     *  * 二路歸并
     *  * 原理:將兩個(gè)有序表合并和一個(gè)有序表
     *  * </pre>
     *  *
     *  * @param a
     *  * @param s
     *  * 第一個(gè)有序表的起始下標(biāo)
     *  * @param m
     *  * 第二個(gè)有序表的起始下標(biāo)
     *  * @param t
     *  * 第二個(gè)有序表的結(jié)束下標(biāo)
     *  *
     */
    private static void merge(int[] a, int s, int m, int t) {
        int[] tmp = new int[t - s + 1];
        int i = s, j = m, k = 0;
        while (i < m && j <= t) {
            if (a[i] <= a[j]) {
                tmp[k] = a[i];
                k++;
                i++;
            } else {
                tmp[k] = a[j];
                j++;
                k++;
            }
        }
        while (i < m) {
            tmp[k] = a[i];
            i++;
            k++;
        }
        while (j <= t) {
            tmp[k] = a[j];
            j++;
            k++;
        }
        System.arraycopy(tmp, 0, a, s, tmp.length);
    }
 
    /**
     *  *
     *  * @param a
     *  * @param s
     *  * @param len
     *  * 每次歸并的有序集合的長(zhǎng)度
     */
    public static void mergeSort(int[] a, int s, int len) {
        int size = a.length;
        int mid = size / (len << 1);
        int c = size & ((len << 1) - 1);
        // -------歸并到只剩一個(gè)有序集合的時(shí)候結(jié)束算法-------//
        if (mid == 0)
            return;
        // ------進(jìn)行一趟歸并排序-------//
        for (int i = 0; i < mid; ++i) {
            s = i * 2 * len;
            merge(a, s, s + len, (len << 1) + s - 1);
        }
        // -------將剩下的數(shù)和倒數(shù)一個(gè)有序集合歸并-------//
        if (c != 0)
            merge(a, size - c - 2 * len, size - c, size - 1);
        // -------遞歸執(zhí)行下一趟歸并排序------//
        mergeSort(a, 0, 2 * len);
    }
 
    public static void main(String[] args) {
        int[] a = new int[]{4, 3, 6, 1, 2, 5};
        mergeSort(a, 0, 1);
        for (int i = 0; i < a.length; ++i) {
            System.out.print(a[i] + " ");
        }
    }
}

數(shù)組逆序序列AC怕午,抄的代碼:

public class Solution {
   public int InversePairs(int [] array) {
        if(array.length == 0||array  == null){
            return 0;

        }
        int[] copy = new int[array.length];
        System.arraycopy(array,0,copy,0,array.length);
        return Merge(array,copy,0,array.length-1);
    }
    public int Merge(int array[],int copy[],int start,int end){
        if(start == end){
            return 0;
        }
        int mid = (start + end)>>1;
        int left = Merge(array,copy,start,mid)% 1000000007;
        int right = Merge(array,copy,mid+1,end)%1000000007;
        int  count = 0;
        int i = mid;
        int j = end;
        int tmp = end;
        while(i>=start && j>mid){
            if(array[i]>array[j]){
                count += j - mid;
                copy[tmp--] = array[i--];
                if(count > 1000000007){
                    count = count - 1000000007;
                }
            }
            else{
                copy[tmp--] = array[j--];
            }
        }
        while (i>=start){
            copy[tmp--] = array[i--];
        }
        while (j>mid){
            copy[tmp--] = array[j--];
        }
            System.arraycopy(copy,start,array,start,end-start+1);
        return (count + left + right)%1000000007;
    }
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市淹魄,隨后出現(xiàn)的幾起案子郁惜,更是在濱河造成了極大的恐慌,老刑警劉巖甲锡,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件兆蕉,死亡現(xiàn)場(chǎng)離奇詭異羽戒,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)虎韵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)易稠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人包蓝,你說(shuō)我怎么就攤上這事驶社。” “怎么了测萎?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵亡电,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我硅瞧,道長(zhǎng)份乒,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任零酪,我火速辦了婚禮冒嫡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘四苇。我一直安慰自己孝凌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布月腋。 她就那樣靜靜地躺著蟀架,像睡著了一般。 火紅的嫁衣襯著肌膚如雪榆骚。 梳的紋絲不亂的頭發(fā)上片拍,一...
    開(kāi)封第一講書(shū)人閱讀 52,785評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音妓肢,去河邊找鬼捌省。 笑死,一個(gè)胖子當(dāng)著我的面吹牛碉钠,可吹牛的內(nèi)容都是我干的纲缓。 我是一名探鬼主播,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼喊废,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼祝高!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起污筷,我...
    開(kāi)封第一講書(shū)人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤工闺,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體陆蟆,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡雷厂,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了遍搞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罗侯。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖溪猿,靈堂內(nèi)的尸體忽然破棺而出钩杰,到底是詐尸還是另有隱情,我是刑警寧澤诊县,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布讲弄,位于F島的核電站,受9級(jí)特大地震影響依痊,放射性物質(zhì)發(fā)生泄漏避除。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一胸嘁、第九天 我趴在偏房一處隱蔽的房頂上張望瓶摆。 院中可真熱鬧,春花似錦性宏、人聲如沸群井。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)书斜。三九已至,卻和暖如春酵使,著一層夾襖步出監(jiān)牢的瞬間荐吉,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工口渔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留样屠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓缺脉,卻偏偏與公主長(zhǎng)得像瞧哟,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子枪向,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 排序的基本概念 在計(jì)算機(jī)程序開(kāi)發(fā)過(guò)程中,經(jīng)常需要一組數(shù)據(jù)元素(或記錄)按某個(gè)關(guān)鍵字進(jìn)行排序咧党,排序完成的序列可用于快...
    Jack921閱讀 1,438評(píng)論 1 4
  • 一. 寫(xiě)在前面 要學(xué)習(xí)算法秘蛔,“排序”是一個(gè)回避不了的重要話(huà)題,在分析完并查集算法和常用數(shù)據(jù)結(jié)構(gòu)之后,今天我們終于可...
    Leesper閱讀 2,535評(píng)論 0 40
  • 1 初級(jí)排序算法 排序算法關(guān)注的主要是重新排列數(shù)組元素深员,其中每個(gè)元素都有一個(gè)主鍵负蠕。排序算法是將所有元素主鍵按某種方...
    深度沉迷學(xué)習(xí)閱讀 1,416評(píng)論 0 1
  • 昨天,太平財(cái)險(xiǎn) 護(hù)航 國(guó)產(chǎn)大型客機(jī)C919首飛 今天倦畅,讓太平〖愛(ài)旅行〗為您的踏青出行保駕護(hù)航遮糖! 原價(jià)100今日限購(gòu)...
    九尾喵丿閱讀 236評(píng)論 0 2
  • 閱讀是寫(xiě)作的基礎(chǔ),沒(méi)有扎實(shí)的地基叠赐,是很難造起高樓的∮耍現(xiàn)在喜歡閱讀的孩子不少。但是好文章很少芭概。所以有家長(zhǎng)問(wèn)我赛不。哎呀,...
    墨墨她娘閱讀 573評(píng)論 0 3