#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 i = 0; i < (lena + lenb); i++){
cout<< arr3[i]<<" ";
}
cout<<endl;
delete[] arr3;
//使用vector的sort投機取巧
vector<int> arr4;
for(int i = 0; i < lena;i++){
arr4.push_back(arr1[i]);
}
for(int j = 0; j < lenb; j++){
arr4.push_back(arr2[j]);
}
sort(arr4.begin(),arr4.end());
for(int k = 0; k< (lena + lenb); k++){
cout<<arr4[k]<<" ";
}
cout<<endl;
return 0;
}