@laney_johnson
В C++ есть несколько способов соединить два массива.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
void mergeArrays(int arr1[], int size1, int arr2[], int size2, int mergedArray[]) { int i = 0, j = 0, k = 0; while (i < size1 && j < size2) { if (arr1[i] <= arr2[j]) { mergedArray[k++] = arr1[i++]; } else { mergedArray[k++] = arr2[j++]; } } while (i < size1) { mergedArray[k++] = arr1[i++]; } while (j < size2) { mergedArray[k++] = arr2[j++]; } } |
Пример использования:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
int main() { const int size1 = 5; const int size2 = 3; int arr1[size1] = {1, 3, 5, 7, 9}; int arr2[size2] = {2, 4, 6}; int mergedArray[size1 + size2]; mergeArrays(arr1, size1, arr2, size2, mergedArray); for (int i = 0; i < size1 + size2; i++) { cout << mergedArray[i] << " "; } return 0; } |
Вывод:
1
|
1 2 3 4 5 6 7 9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include #include int main() { const int size1 = 5; const int size2 = 3; int arr1[size1] = {1, 3, 5, 7, 9}; int arr2[size2] = {2, 4, 6}; int mergedArray[size1 + size2]; std::merge(arr1, arr1 + size1, arr2, arr2 + size2, mergedArray); for (int i = 0; i < size1 + size2; i++) { std::cout << mergedArray[i]<< " "; } return 0; } |
Вывод:
1
|
1 2 3 4 5 6 7 9 |
Оба способа позволяют объединить два массива в отсортированный массив.