ZZULIOJ 1124 兩個有序陣列合併

2021-10-02 19:58:16 字數 1305 閱讀 9103

題目描述

已知陣列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中。輸入有兩行,...