问题:
合并两个排序的整数数组A和B变成一个新的数组。
碰到这个题,第一想到的是将两个数组整合到一起再进行排序,但仔细一想对于与两个已经排好序的数组来说这样做会浪费时间,于是想到了归并排序算法中对两段数组进行合并并排序的算法.
vector<int> mergeSortedArray(vector<int> &A, vector<int> &B) {
// write your code here
int lengtha,lengthb;
lengtha = A.size();
lengthb = B.size();
int lengthc = lengtha + lengthb;
vector<int> c(lengthc);
int i,j,k;
i = j = k = 0;
while(i < lengtha && j < lengthb)
{
if(A[i] < B[j])
{
c[k] = A[i];
i++;
k++;
}
else
{
c[k] = B[j];
j++;
k++;
}
}
if(i < lengtha)
{
for(i;i < lengtha;i++)
{
c[k] = A[i];
k++;
}
}
else
{
for(j;j < lengthb;j++)
{
c[k] = B[j];
k++;
}
}
return c;
}