題目描述
已知陣列a中有m個按公升序序排列的元素,陣列b中有n個降序排列的元素,程式設計將a與b中的所有元素按降序存入陣列c中。
輸入
輸入有兩行,第一行首先是乙個正整數m,然後是m個整數;第二行首先是乙個正整數n,然後是n個整數,m, n均小於等於1000000。
輸出
輸出合併後的m+n個整數,資料之間用空格隔開。輸出佔一行。
樣例輸入
4 1 2 5 7
3 6 4 2
樣例輸出
7 6 5 4 2 2 1
提示
試圖排序的孩子們要小心了~~~~~~
(c語言)
#include
int a[
1000000
],b[
1000000];
//要求的陣列長度過大,如果定義到main函式中會出現p1的情況
intmain()
//將按公升序排列的陣列a倒序輸入,從而實現陣列a降序排列
scanf
("%d"
,&n)
;for
(i=0
;i)int c[n+m]
; i=
0,j=0;
int k=0;
while
(i//比較陣列a和陣列b長度相同的部分
while
(i//如果a的陣列長度大於b的陣列長度,將陣列a剩餘的數存入陣列c
while
(j//如果b的陣列長度大於a的陣列長度,將陣列b剩餘的數存入陣列c
for(i=
0;i<=n+m-
1;i++
)//陣列a中有n個元素,陣列b中有m個元素,則陣列c中有m+n-1個元素
//輸出陣列c
return0;
}
總體思路:先將按公升序排列的陣列a倒序輸入,從而實現陣列a降序排列。要求將a與b中的所有元素按降序存入陣列c中,所以可以採用陣列a、b各元素相比較的方法,大的先存入陣列c中(最重要的是分清楚k++和++k)。特別需要注意m和n的值可能不相等,即陣列a中元素比陣列b中的元素多,或者陣列b中的元素比陣列a中的元素多的情況,比較時只需要比較陣列a和陣列b相同數量的元素,元素多的陣列剩餘部分直接存入陣列c中。
ZZULIOJ 1124 兩個有序陣列合併
已知陣列a中有m個按公升序序排列的元素,陣列b中有n個降序排列的元素,程式設計將a與b中的所有元素按降序存入陣列c中。輸入有兩行,第一行首先是乙個正整數m,然後是m個整數 第二行首先是乙個正整數n,然後是n個整數,m,n均小於等於1000000。輸出合併後的m n個整數,資料之間用空格隔開。輸出佔一...
zzulioj1124(合併陣列排序)
題目描述 已知陣列a中有m個按公升序序排列的元素,陣列b中有n個降序排列的元素,程式設計將a與b中的所有元素按降序存入陣列c中。輸入 輸入有兩行,第一行首先是乙個正整數m,然後是m個整數 第二行首先是乙個正整數n,然後是n個整數,m,n均小於等於1000000。輸出 輸出合併後的m n個整數,資料之...
1124 兩個有序陣列合併
time limit 1 sec memory limit 128 mb submit 6260 solved 2262 submit status web board 已知陣列a中有m個按公升序序排列的元素,陣列b中有n個降序排列的元素,程式設計將a與b中的所有元素按降序存入陣列c中。輸入有兩行,...