Write a C, C++ program to merge two sorted arrays. Given a two sorted arrays, Write a program to merge these sorted arrays and print the final result.
In this post, i'll show you how to merge two sorted arrays with the help of a third array.
Reverse an Array Using Recursion
Insert an Element in an Array
Sorting Algorithm and their time complexity
Program Logic
Let's declare two variables P and Q.
P = Length of arr1.
Q = Length of arr2.
While p and q is not equal to zero, we merge the element of arr1 and arr2 in a third array (arr3). But there may be a case, when either the length of arr1 or arr2 is not equal.
Output :
In this post, i'll show you how to merge two sorted arrays with the help of a third array.
Reverse an Array Using Recursion
Insert an Element in an Array
Sorting Algorithm and their time complexity
Program Logic
Let's declare two variables P and Q.
P = Length of arr1.
Q = Length of arr2.
While p and q is not equal to zero, we merge the element of arr1 and arr2 in a third array (arr3). But there may be a case, when either the length of arr1 or arr2 is not equal.
while(p && q){
if(arr1[i] < arr2[j]){
arr3[k++] = arr1[i++];
p--;
}else {
arr3[k++] = arr2[j++];
q--;
}
}
/* If length of arr1 is greater than arr2, merge
remaining elements of arr1 into arr3 */
while(p > 0){
arr3[k++] = arr1[i++];
p--;
}
/* Similarly If length of arr2 is greater than arr1, merge
remaining elements of arr2 into arr3 */
while(q > 0){
arr3[k++] = arr2[j++];
q--;
}
C Program to Merge Two Sorted Arrays
#include <stdio.h>
int main(void) {
int arr1[] = {1,3,6,8,9};
int arr2[] = {5,6,9,12};
int arr3[100];
int i = 0,j = 0,k = 0,s;
/* length of arr1 */
int p = sizeof(arr1)/sizeof(arr1[0]);
/*length of arr2 */
int q = sizeof(arr2)/sizeof(arr2[0]);
/* While p and q is not equal to zero */
while(p && q)
{
if (arr1[i] < arr2[j])
{
arr3[k++] = arr1[i++];
p--;
} else {
arr3[k++] = arr2[j++];
q--;
}
}
while ( p > 0)
{
arr3[k++]=arr1[i++];
p--;
}
while( q > 0)
{
arr3[k++]=arr2[j++];
q--;
}
/* After Merging */
for( s = 0; s < k; s++)
{
printf("%d ",arr3[s]);
}
return 0;
}
C++ Program to Merge Two Sorted Arrays
#include <iostream>
using namespace std;
void merge (int arr1[], int arr2[], int len1, int len2) {
int arr3[200];
int p = 0;
int q = 0;
int k = 0;
while ( p < len1 && q < len2) {
if (arr1[p] < arr2[q]) {
arr3[k++] = arr1[p++];
} else {
arr3[k++] = arr2[q++];
}
}
while ( p < len1) {
arr3[k++] = arr1[p++];
}
while ( q < len2) {
arr3[k++] = arr2[q++];
}
for ( int c = 0; c < k; c++) {
cout << arr3[c] << " ";
}
}
int main() {
int arr1[100], arr2[100], len1, len2;
cout << "Enter the length of first array \n";
cin >> len1;
cout << "Enter the length of second array \n";
cin >> len2;
cout << "Enter sorted values for first array \n";
for (int i = 0; i < len1; i++) {
cin >> arr1[i];
}
cout << "Enter sorted values for second array \n";
for (int j = 0; j < len2; j++) {
cin >> arr2[j];
}
merge(arr1, arr2, len1, len2);
return 0;
}
Output :
Enter the length of first array : 3
Enter the length of second array : 3
Enter sorted values for first array : 4 9 10
Enter sorted values for second array : 1 5 7
1 4 5 7 9 10
Programming question on Arrays
Programming question on Strings
No comments:
Post a Comment