兩個有序陣列合併

2021-08-31 03:05:31 字數 893 閱讀 6188

題目描述

已知陣列a中有m個按公升序排列的元素,陣列b中有n個按降序排列的元素,程式設計將a與b中的所有元素按降序存入陣列c中。

輸入輸入有兩行,第一行首先是乙個正整數m,然後是m個整數;第二行首先是乙個正整數n,然後是n個整數,m, n均小於等於1000000。

輸出輸出合併後的m+n個整數,資料之間用空格隔開。輸出佔一行。

樣例輸入

4 1 3 5 7

3 6 4 2

樣例輸出

7 6 5 4 3 2 1
#includeint a[1000000],b[1000000],c[2000000];

int main()

while(i <= m)

c[k++] = a[i++];

while(j <= n)

c[k++] = b[j++];

for(k = 1; k <= n+m-1; k ++)

printf("%d ",c[k]);

printf("%d\n",c[m+n]);

return 0;

}

還有乙個方法,可以學習一下,但對於範圍較大的不適用,比如說這一題。

#include int a[2000];

int main()

a[j+1] = t;

}scanf("%d",&n);

for(i = m; i < m+n; i ++)

a[j+1] = t;

}for(i = 0; i < m+n-1; i ++)

printf("%d ",a[i]);

printf("%d\n", a[i]);

return 0;

}

C 兩個有序陣列合併

源自劍指offer中的思考題,有序陣列a b,a有足夠空間容納b,將a,b按順序排列。思路 也是用兩個指標從尾部開始進行依次比較,較大的放在新陣列的後邊,然後指標依次轉移。1.la,lb分別指向a和b的尾部,index指向融合陣列的尾部 2.然後比較,大的放在index出,index向前移動一位,然...

1124 兩個有序陣列合併

time limit 1 sec memory limit 128 mb submit 6260 solved 2262 submit status web board 已知陣列a中有m個按公升序序排列的元素,陣列b中有n個降序排列的元素,程式設計將a與b中的所有元素按降序存入陣列c中。輸入有兩行,...

1124 兩個有序陣列合併

題目描述 已知陣列a中有m個按公升序序排列的元素,陣列b中有n個降序排列的元素,程式設計將a與b中的所有元素按降序存入陣列c中。輸入 輸入有兩行,第一行首先是乙個正整數m,然後是m個整數 第二行首先是乙個正整數n,然後是n個整數,m,n均小於等於1000000。輸出 輸出合併後的m n個整數,資料之...