787 歸併排序

2022-06-05 05:30:09 字數 1198 閱讀 4578

題目描述

給定你乙個長度為n的整數數列。

請你使用歸併排序對這個數列按照從小到大進行排序。

並將排好序的數列按順序輸出。

輸入格式

輸入共兩行,第一行包含整數 n。

第二行包含 n 個整數(所有整數均在1~109範圍內),表示整個數列。

輸出格式

輸出共一行,包含 n 個整數,表示排好序的數列。

資料範圍

1≤n≤100000

輸入樣例:

53 1 2 4 5

輸出樣例:

1 2 3 4 5

演算法描述

歸併排序(merge sort)是建立在歸併操作上的一種有效,穩定的排序演算法,該演算法採用分治法.

將已有序的子串行合併,得到完全有序的序列;即先使每個子串行有序,再使子串行段間有序。若將兩個有序表合併成乙個有序表,稱為二路歸併。

歸併操作的工作原理如下:

第一步:申請空間,使其大小為兩個已經排序序列之和,該空間用來存放合併後的序列

第二步:設定兩個指標,最初位置分別為兩個已經排序序列的起始位置

重複步驟3直到某一指標超出序列尾

將另一串行剩下的所有元素直接複製到合併序列尾

Acwing 787 歸併排序

歸併排序步驟 1.確定分界點 按照中間位置分為兩段 2.遞迴處理兩段區間 3.合併兩段處理後有序區間 歸併 include using namespace std const int maxn 100005 int value maxn int temp maxn 臨時儲存合併陣列 歸併排序 voi...

Acwing 787 歸併排序

給定你乙個長度為n的整數數列。請你使用歸併排序對這個數列按照從小到大進行排序。並將排好序的數列按順序輸出。輸入格式 輸入共兩行,第一行包含整數 n。第二行包含 n 個整數 所有整數均在1 109109範圍內 表示整個數列。輸出格式 輸出共一行,包含 n 個整數,表示排好序的數列。資料範圍 1 n 1...

acwing AcWing 787 歸併排序

給定你乙個長度為 n 的整數數列。請你使用歸併排序對這個數列按照從小到大進行排序。並將排好序的數列按順序輸出。輸入格式 輸入共兩行,第一行包含整數 n 第二行包含 n 個整數 所有整數均在 1 109 範圍內 表示整個數列。輸出格式 輸出共一行,包含 n 個整數,表示排好序的數列。資料範圍 1 n ...