两个有序数组的合并

 1 /*
 2  * InsertArray.cpp
 3  *
 4  *  Created on: 2016年5月17日
 5  *      Author: Laughing_Lz
 6  */
 7 
 8 #include <iostream>
 9 #include <string.h>
10 #include <iomanip>
11 #include <string>
12 using namespace std;
13 /**
14  *两个有序数组的合并:从后至前,依次将较大的数放入新数组的末端
15  */
16 void InsertArray(int array1[], int array2[]) {
17     int length1 = 0;
18     while (array1[length1] != '') {
19         length1++;
20     }
21     int length2 = 0;
22     while (array2[length2] != '') {
23         length2++;
24     }
25     int newLength1 = length1 + length2;
26     while (newLength1 >= 1) {
27         if (newLength1 == 1) {//退出循环★
28             if (length1 == 0) {
29                 array1[newLength1 - 1] = array2[length2 - 1];
30                 break;
31             } else if (length2 == 0) {
32                 array1[newLength1 - 1] = array1[length1 - 1];
33                 break;
34             }
35         } else {
36             if (array2[length2 - 1] > array1[length1 - 1]) { //每次将两数组中较大的数放入新数组的末端
37                 array1[newLength1 - 1] = array2[length2 - 1];
38                 length2--;
39                 newLength1--;
40             } else {
41                 array1[newLength1 - 1] = array1[length1 - 1];
42                 length1--;
43                 newLength1--;
44             }
45         }
46     }
47     int i = 0;
48     while (array1[i] != '') {
49         cout << array1[i++] << setw(3);
50     }
51 }
52 void TestsadInsert() {
53     int array1[100] = { 2, 3, 5, 7, 9, 11 };
54     int array2[50] = { 1, 4, 6, 8, 10, 12 };
55     InsertArray(array1, array2);
56 }
57 int main(int argc, char **argv) {
58     TestsadInsert();
59     return 0;
60 }
—————————————————————————————————————行走在人猿的并行线——Laughing_Lz
原文地址:https://www.cnblogs.com/Laughing-Lz/p/5501161.html