描述
给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组 B 合并到数组 A 中,变成一个有序的升序数组.
class Solution
{
///方法1:双指针
void merge(int A[], int m, int B[], int n)
{
int *result = new int[m + n];
int p1=0, p2=0;
int i = 0;
while (p1 < m&&p2 < n)
{
if (A[p1] <= B[p2])
{
result[i] = A[p1];
p1++;
}
else
{
result[i] = B[p2];
p2++;
}
++i;
}
while (p1 < m)
{
result[i] = A[p1];
++i;
++p1;
}
while (p2 < n)
{
result[i] = B[p2];
++i;
++p2;
}
for (int j = 0; j < m + n; j++)
{
A[j] = result[j];
}
}
///方法2:合并排序
void merge(int A[], int m, int B[], int n)
{
for (int i = 0; i < n; i++)
{
A[m + i] = B[i];
}
sort(A, A + m + n);//默认升序
}
};