time limit: 100 ms memory limit: 880 kib
submit
statistic
problem description
已知順序表a與b是兩個有序的順序表,其中存放的資料元素皆為普通整型,將a與b表歸併為c表,要求c表包含了a、b表裡所有元素,並且c表仍然保持有序。
input
輸入分為三行:
第一行輸入m、n(1<=m,n<=10000)的值,即為表a、b的元素個數;
第二行輸入m個有序的整數,即為表a的每乙個元素;
第三行輸入n個有序的整數,即為表b的每乙個元素;
output
輸出為一行,即將表a、b合併為表c後,依次輸出表c所存放的元素。
sample input
5 3sample output1 3 5 6 9
2 4 10
1 2 3 4 5 6 9 10hint
source
這個題時間和空間複雜度卡的並不是很嚴格,可以用陣列來進行資料的處理,可以開闢三個陣列的空間,前兩個陣列進行資料的輸入,最後乙個陣列來比較大小然後作為兩個陣列的合併媒介,最後需要注意一點就是前兩個陣列的資料個數可能並不一樣,一定有乙個陣列內的資料轉移完畢之後另乙個陣列中還有元素沒有轉移過去,這時候就需要判斷是否轉移完全,沒有轉移完全的直接存入第三個陣列中即可。**也相對簡單。有精通鍊錶的朋友也可以用鍊錶進行處理,就是鍊錶的有序合併,在這裡的時間和空間複雜度上是不會超時的。
ac**:
#includeusing namespace std;
int main()
for(int i=0;ifor(i=0,j=0,k=0;kif(iif(a[i]<=b[j])
else
}for(int i=0;ielse
// printf("%d%c",c[i],i==k-1?'\n':' ');//在這裡提一下,如果有覺得輸出格式有點麻煩的話可以簡單的學習一下三目運算子,僅用一行**即可代替。感興趣的可以學習一下。
} return 0;
}
順序表應用5 有序順序表歸併
已知順序表a與b是兩個有序的順序表,其中存放的資料元素皆為普通整型,將a與b表歸併為c表,要求c表包含了a b表裡所有元素,並且c表仍然保持有序。輸入分為三行 第一行輸入m n 1 m,n 10000 的值,即為表a b的元素個數 第二行輸入m個有序的整數,即為表a的每乙個元素 第三行輸入n個有序的...
順序表應用5 有序順序表歸併
time limit 100ms memory limit 800k 有疑問?點這裡 已知順序表a與b是兩個有序的順序表,其中存放的資料元素皆為普通整型,將a與b表歸併為c表,要求c表包含了a b表裡所有元素,並且c表仍然保持有序。輸入分為三行 第一行輸入m n 1 m,n 10000 的值,即為表...
順序表應用5 有序順序表歸併
time limit 100ms memory limit 800k 已知順序表a與b是兩個有序的順序表,其中存放的資料元素皆為普通整型,將a與b表歸併為c表,要求c表包含了a b表裡所有元素,並且c表仍然保持有序。輸入分為三行 第一行輸入m n 1 m,n 10000 的值,即為表a b的元素個數...