#include<bits/stdc++.h>
using namespace std;
void fun(int *a, int *b, int na, int nb, int m){
int i = na - 1, j = nb -1;
int k = na + nb - 1;
while(i >= 0 && j >= 0 && k >= 0){
if(b[j] > a[i]){
a[k] = b[j];
k--;
j--;
}
else{
a[k] = a[i];
k--;
i--;
}
}
while(i >= 0){
a[k--] = a[i--];
}
while(j >= 0){
a[k--] = b[j--];
}
}
int main()
{
int a[10] = {1,5,7,9};
int b[3] = {2,6,8};
fun(a, b, 4, 3, 10);
for(int i = 0;i < 7; ++i){
cout<<a[i]<<" ";
}
return 0;
}
合并两个有序数组,其中有一个数组长度足够长,在O(1)的空间复杂度里进行合并
猜你喜欢
转载自blog.csdn.net/qq_24624539/article/details/109102631
今日推荐
周排行