题目:Merge Sorted Array
Given two sorted integer arrays A and B, merge B into A as one sorted array.
Note:
You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m and n respectively.
解答:
最开始,打算拿数组B的元素和数组A的元素逐一比较,判断插入的位置。后来,突然想到C++自带排序函数sort(),所以只需要先把数组B追加到数组A中,然后调用sort()函数即可。当然,如果只用C语言写,不去使用sort(),就要自己实现一种排序算法。但整体思路上,先追加再排序,要比逐一比较进行插入要好。
AC代码如下:
void merge(int A[], int m, int B[], int n) {
int i;
for(i=m; i<m+n; i++)
A[i] = B[i-m];
sort(A,A+(m+n));
}