【C/C++】將二個有序數組合並
阿新 • • 發佈:2018-12-21
1、同時迴圈取2個數組中的數,比較2個數組的第1個數,誰小把誰放入新陣列;
2、再把數字小的陣列往後繼續取數字;
3、如果有陣列遍歷完,就把另一個數組的剩餘資料全部賦給新陣列即可。
程式碼如下:
#include <iostream> using namespace std; void mergeSort(int *a, int m, int *b, int n, int *c) { int i,j,k; i=0; j=0; k = 0; while (i<m && j<n) { if (a[i]<b[j]) { c[k++] = a[i++]; } else { c[k++] = b[j++]; } } while(i<m) { c[k++] = a[i++]; } while(j<n) { c[k++] = b[j++]; } } int main() { int a[6] = {1,4,7,8,9,15}; int b[7] = {0,2,3,6,10,11,17}; int c[13]; mergeSort(a, 6, b, 7, c); for(int num = 0; num<13; num++) { cout<<c[num]<<","; } cout<<endl; cin.get(); return 0; }