1035 插入與歸併 25

2021-07-11 01:03:45 字數 924 閱讀 7158

根據維基百科的定義:

插入排序是迭代演算法,逐一獲得輸入資料,逐步產生有序的輸出序列。每步迭代中,演算法從輸入序列中取出一元素,將之插入有序序列中正確的位置。如此迭代直到全部元素有序。

歸併排序進行如下迭代操作:首先將原始序列看成n個只包含1個元素的有序子串行,然後每次迭代歸併兩個相鄰的有序子串行,直到最後只剩下1個有序的序列。

現給定原始序列和由某排序演算法產生的中間序列,請你判斷該演算法究竟是哪種排序演算法?

輸入格式:

輸入在第一行給出正整數n (<=100);隨後一行給出原始序列的n個整數;最後一行給出由某排序演算法產生的中間序列。這裡假設排序的目標序列是公升序。數字間以空格分隔。

輸出格式:

首先在第1行中輸出「insertion sort」表示插入排序、或「merge sort」表示歸併排序;然後在第2行中輸出用該排序演算法再迭代一輪的結果序列。題目保證每組測試的結果是唯一的。數字間以空格分隔,且行末不得有多餘空格。

idea

首先宣告方法不是我自己想出來的,是借鑑別人的,自己太low啦

先判斷是否是插入排序(即開始一段子串行為有序序列,後來為原始序列),若是,進行下一趟插入

若不是,則是歸併排序,從原始序列進行歸併,每歸併一次都和現有序列比較,若相同,在進行一次歸併  

code

#include#includeusing namespace std;

int main();

// int a2[10]=;

// int a2[10]=;

int i,j;

for(i=0;i>a1[i];

} for(i=0;i>a2[i];

} //檢查前面是否為有序序列, i退出迴圈時是有序序列最後乙個數的下標

for(i=0;a2[i]<=a2[i+1]&&i

1035 插入與歸併 25

根據維基百科的定義 插入排序是迭代演算法,逐一獲得輸入資料,逐步產生有序的輸出序列。每步迭代中,演算法從輸入序列中取出一元素,將之插入有序序列中正確的位置。如此迭代直到全部元素有序。歸併排序進行如下迭代操作 首先將原始序列看成n個只包含1個元素的有序子串行,然後每次迭代歸併兩個相鄰的有序子串行,直到...

1035 插入與歸併 25

時間限制 200 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 根據維基百科的定義 插入排序是迭代演算法,逐一獲得輸入資料,逐步產生有序的輸出序列。每步迭代中,演算法從輸入序列中取出一元素,將之插入有序序列中正確的位置。如此迭代直到全...

1035 插入與歸併 25

根據維基百科的定義 插入排序是迭代演算法,逐一獲得輸入資料,逐步產生有序的輸出序列。每步迭代中,演算法從輸入序列中取出一元素,將之插入有序序列中正確的位置。如此迭代直到全部元素有序。歸併排序進行如下迭代操作 首先將原始序列看成n個只包含1個元素的有序子串行,然後每次迭代歸併兩個相鄰的有序子串行,直到...