传说中的归并排序么……
class Solution {
public:
void merge(int A[], int m, int B[], int n) {
int *C = new int[m + n];
int ptr = 0;
int i = 0, j = 0;
while (i < m && j < n) {
if (A[i] <= B[j]) {
C[ptr++] = A[i++];
}
else {
C[ptr++] = B[j++];
}
}
if (i == m) {
while (j < n)
C[ptr++] = B[j++];
}
else if (j == n) {
while (i < m)
C[ptr++] = A[i++];
}
for (int i = 0; i < m + n; ++i)
A[i] = C[i];
delete C;
}
};
http://oj.leetcode.com/problems/merge-sorted-array/