1 /* 2 * InsertArray.cpp 3 * 4 * Created on: 2016年5月17日 5 * Author: Laughing_Lz 6 */ 7 8 #include9 #include 10 #include 11 #include 12 using namespace std;13 /**14 *两个有序数组的合并:从后至前,依次将较大的数放入新数组的末端15 */16 void InsertArray(int array1[], int array2[]) {17 int length1 = 0;18 while (array1[length1] != '\0') {19 length1++;20 }21 int length2 = 0;22 while (array2[length2] != '\0') {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] != '\0') {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 }