两个有序数组的合并
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] != '\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 }
—————————————————————————————————————行走在人猿的并行线——Laughing_Lz