समस्या कथन
दो सरणियों को देखते हुए, हमें दो सरणियों को इस तरह से संयोजित करने की आवश्यकता है कि संयुक्त सरणी में पहले और दूसरे सरणी के वैकल्पिक तत्व हों। यदि किसी एक सरणी में एक अतिरिक्त तत्व है, तो इन तत्वों को संयुक्त सरणी के अंत में जोड़ा जाना चाहिए।
arr1[] = {10, 20, 30, 40} arr2[] = {-10, -20, -30, -40} result[] = {10, -10, 20, -20, 30, -30, 40, -40}
एल्गोरिदम
1. Traverse both arrays and one by one put elements into result array. 2. If one of the array exhausts then put remaining elements of other array into result array.
उदाहरण
#include <iostream> #define SIZE(arr) (sizeof(arr) / sizeof(arr[0])) using namespace std; void alternateMergedArray(int *arr1, int n1, int *arr2, int n2,int *result){ int i, j, k; i = 0; j = 0; k = 0; while (i < n1 && j < n2) { result[k] = arr1[i]; ++k; ++i; result[k] = arr2[j]; ++k; ++j; } while (i < n1) { result[k] = arr1[i]; ++k; ++i; } while (j < n2) { result[k] = arr2[j]; ++k; ++j; } } void displayArray(int *arr, int n){ for (int i = 0; i < n; ++i) { cout << arr[i] << " "; } cout << endl; } int main(){ int arr1[] = {10, 20, 30, 40}; int arr2[] = {-10, -20, -30, -40}; int result[SIZE(arr1) + SIZE(arr2)]; cout << "First array: " << endl; displayArray(arr1, SIZE(arr1)); cout << "Second array: " << endl; displayArray(arr2, SIZE(arr2)); cout << "Result array: " << endl; alternateMergedArray(arr1, SIZE(arr1), arr2, SIZE(arr2),result); displayArray(result, SIZE(result)); return 0; }
आउटपुट
जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्न आउटपुट उत्पन्न करता है -
First array: 10 20 30 40 Second array: -10 -20 -30 -40 Result array: 10 -10 20 -20 30 -30 40 -40