#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int *sortArr(int* stra, int lena, int* strb, int lenb){
if(stra == nullptr || strb == nullptr)
return nullptr;//有一个或两个数组为空,
int* strc = new int[lena + lenb + 1];
int i, j, k;
i = j = k =0;
while(i < lena && j < lenb){//两个数组非空,取较小值放进新数组
if(stra[i] < strb[j]){
strc[k++] = stra[i++];
}
else{
strc[k++] = strb[j++];
}
}
while(i < lena){//a数组有剩余
strc[k++] = stra[i++];
}
while(j < lenb){//b数组有剩余
strc[k++] = strb[j++];
}
return strc;
}
int main(int argc, char** argv) {
int arr1[] = {1,4,6,7,9,12,15};
int arr2[] = {4,7,9,56,78,90};
int lena = sizeof(arr1) / sizeof(arr1[0]);
int lenb = sizeof(arr2) / sizeof(arr2[0]);
int* arr3 = sortArr(arr1, lena, arr2, lenb);
for(int
【编程】把两个有序数组合并成一个有序数组
最新推荐文章于 2024-04-30 15:24:01 发布
#include <iostream>#include <vector>#include <algorithm>using namespace std;int *sortArr(int* stra, int lena, int* strb, int lenb){ if(stra == nullptr || strb == nullptr) re...
摘要由CSDN通过智能技术生成