class Solution {
public:
void merge(int A[], int m, int B[], int n) {
int* start_a = A;
int* start_b = B;
int* end_a = A + m - 1;
while ((m != 0) && (n != 0))
{
if (*start_a > *start_b)
{
for (int *cur = end_a; cur >= start_a; cur--)
*(cur + 1) = *cur;
*start_a = *start_b;
start_b++;
start_a++;
end_a++;
n--;
}
else
{
start_a++;
m--;
}
}
if (m == 0)
{
end_a++;
for (int i = 0; i < n; i++)
{
*end_a = *start_b;
end_a++;
start_b++;
}
}
}
};

京公网安备 11010502036488号