C 合併有序陣列

2021-10-11 01:39:23 字數 1480 閱讀 5373

合併有序陣列

【問題描述】編寫乙個程式,將兩個元素從小到大有序的一維陣列歸併成乙個有序的一維陣列。

【輸入形式】使用者在第一行輸入第乙個有序陣列的元素數目,以回車結束此輸入。然後在第二行按照剛才輸入的元素數目依次輸入陣列元素,中間用空格分隔,最後用回車結束輸入。第三行和第四行只需重複剛才的步驟,將第二個有序陣列也輸入即可。輸入時候一定是有序輸入的,即陣列元素已經按照從小到大順序排列。

【輸出形式】程式將兩個有序一維陣列合併為乙個有序陣列並按照從小到大順序輸出。每個元素輸出時用空格分隔,最後乙個輸出之後沒有空格。

【樣例輸入】

62 5 8 11 20 35

41 6 15 60

【樣例輸出】1 2 5 6 8 11 15 20 35 60

【樣例說明】第一行輸入為第乙個有序陣列的元素數目,第二行為有序陣列元素;第三行為第二個有序陣列的元素數目,第四行為有序陣列元素。

【評分標準】結果完全正確得20分。

1.雙指標

#include

using

namespace std;

void

print

(int a,

int len)

}int

main()

cin>>n;

for(

int i=

0;i)int p1=m-

1,p2=n-

1,p=m+n-1;

while

(p>=0)

print

(a,m+n)

;}

2.排序

#include

using

namespace std;

void

print

(int a,

int len)

}int

main()

cin>>m;len=m+n;

for(

int i=n;i)sort

(a,a+m+n)

;print

(a,m+n)

;}

3.選擇排序

#include

using

namespace std;

intmax

(int a,

int len)

}return maxi;

}void

mysort

(int len,

int a)

}void

print

(int a,

int len)

}int

main()

cin>>m;len=m+n;

for(

int i=n;i)mysort

(m+n,a)

;print

(a,m+n)

;}

合併有序陣列

時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述 給你兩個有序且公升序的陣列,請你把它們合成乙個公升序陣列並輸出 give you two ordered ascending array,you put them into one ascending array and ou...

合併有序陣列

描述 給你兩個有序整數陣列 nums1 和 nums2,請你將 nums2 合併到 nums1 中,使 num1 成為乙個有序陣列。說明 初始化 nums1 和 nums2 的元素數量分別為 m 和 n 你可以假設 nums1 有足夠的空間 空間大小大於或等於 m n 來儲存 nums2 中的元素。...

合併有序陣列

給你兩個有序整數陣列 nums1 和 nums2,請你將 nums2 合併到 nums1 中,使 nums1 成為乙個有序陣列。說明 初始化 nums1 和 nums2 的元素數量分別為 m 和 n 你可以假設 nums1 有足夠的空間 空間大小大於或等於 m n 來儲存 nums2 中的元素。vo...