समस्या कथन
दो सरणियाँ दी गई हैं, हमें दो सरणियों को इस तरह संयोजित करना है कि संयुक्त सरणी में पहली और दूसरी सरणी के वैकल्पिक तत्व हों। यदि एक सरणी में अतिरिक्त तत्व है, तो इन तत्वों को संयुक्त सरणी के अंत में जोड़ा जाना चाहिए।
arr1[] = {10, 20, 30, 40}
arr2[] = {-10, -20, -30, -40}
result[] = {10, -10, 20, -20, 30, -30, 40, -40}
एल्गोरिदम
1. दोनों सरणियों को पार करें और एक-एक करके तत्वों को परिणाम सरणी में डालें। 2. यदि एक सरणी समाप्त हो जाती है तो दूसरी सरणी के शेष तत्वों को परिणाम सरणी में डालें।
C++ उदाहरण
#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 = 0, j = 0, k = 0;
while (i < n1 && j < n2) {
result[k++] = arr1[i++];
result[k++] = arr2[j++];
}
while (i < n1) result[k++] = arr1[i++];
while (j < n2) result[k++] = arr2[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