Here you will get C/C++ program to find union of two arrays.
For example:
First array: {1, 3, 7, 9}
Second array: {1, 4, 6}
Union: {1, 3, 4, 7, 6, 9}
C/C++ Program for Union of Two Arrays
Union of Two Sorted Arrays
If two arrays are sorted then their union can be found in following way.
C Program
#include<stdio.h> int main() { int a1[20],a2[20],u[40],i,j,k,n,m; printf("Enter size of first array:"); scanf("%d",&n); printf("Enter elements of first array in ascending order:\n"); for(i=0;i<n;++i){ scanf("%d",&a1[i]); } printf("\nEnter size of second array:"); scanf("%d",&m); printf("Enter elements of second array in ascending order:\n"); for(i=0;i<m;++i){ scanf("%d",&a2[i]); } for(i=0,j=0,k=0;i<n&&j<m;){ if(a1[i]<a2[j]){ u[k]=a1[i]; i++; k++; } else if(a1[i]>a2[j]){ u[k]=a2[j]; j++; k++; } else{ u[k]=a1[i]; i++; j++; k++; } } if(i<n){ for(;i<n;++i){ u[k]=a1[i]; k++; } } else if(j<m){ for(;j<m;++j){ u[k]=a2[j]; k++; } } printf("\nUnion of two arrays is:\n"); for(i=0;i<k;++i){ printf("%d ",u[i]); } return 0; }
Output
Enter size of first array:4
Enter elements of first array in ascending order:
1 2 3 5
Enter size of second array:5
Enter elements of second array in ascending order:
1 3 5 7 9
Union of two arrays is:
1 2 3 5 7 9
C++ Program
#include<iostream> using namespace std; int main() { int a1[20],a2[20],u[40],i,j,k,n,m; cout<<"Enter size of first array:"; cin>>n; cout<<"Enter elements of first array in ascending order:\n"; for(i=0;i<n;++i){ cin>>a1[i]; } cout<<"\nEnter size of second array:"; cin>>m; cout<<"Enter elements of second array in ascending order:\n"; for(i=0;i<m;++i){ cin>>a2[i]; } for(i=0,j=0,k=0;i<n&&j<m;){ if(a1[i]<a2[j]){ u[k]=a1[i]; i++; k++; } else if(a1[i]>a2[j]){ u[k]=a2[j]; j++; k++; } else{ u[k]=a1[i]; i++; j++; k++; } } if(i<n){ for(;i<n;++i){ u[k]=a1[i]; k++; } } else if(j<m){ for(;j<m;++j){ u[k]=a2[j]; k++; } } cout<<"\nUnion of two arrays is:\n"; for(i=0;i<k;++i){ cout<<u[i]<<" "; } return 0; }
Union of Two Unsorted Arrays
If two arrays are unsorted then their union can be found in following way.
C Program
#include<stdio.h> int main() { int a1[20],a2[20],u[40],i,j,k,n,m,flag; printf("Enter size of first array:"); scanf("%d",&n); printf("Enter elements of first array:\n"); for(i=0;i<n;++i){ scanf("%d",&a1[i]); } printf("\nEnter size of second array:"); scanf("%d",&m); printf("Enter elements of second array:\n"); for(i=0;i<m;++i){ scanf("%d",&a2[i]); } k=0; for(i=0;i<n;++i){ u[k]=a1[i]; k++; } for(i=0;i<m;++i){ flag=1; for(j=0;j<n;++j){ if(a2[i]==a1[j]){ flag=0; break; } } if(flag){ u[k]=a2[i]; k++; } } printf("\nUnion of two arrays is:\n"); for(i=0;i<k;++i){ printf("%d ",u[i]); } return 0; }
Output
Enter size of first array:3
Enter elements of first array:
1 3 5
Enter size of second array:4
Enter elements of second array:
1 2 3 6
Union of two arrays is:
1 3 5 2 6
C++ Program
#include<iostream> using namespace std; int main() { int a1[20],a2[20],u[40],i,j,k,n,m,flag; cout<<"Enter size of first array:"; cin>>n; cout<<"Enter elements of first array in ascending order:\n"; for(i=0;i<n;++i){ cin>>a1[i]; } cout<<"\nEnter size of second array:"; cin>>m; cout<<"Enter elements of second array in ascending order:\n"; for(i=0;i<m;++i){ cin>>a2[i]; } k=0; for(i=0;i<n;++i){ u[k]=a1[i]; k++; } for(i=0;i<m;++i){ flag=1; for(j=0;j<n;++j){ if(a2[i]==a1[j]){ flag=0; break; } } if(flag){ u[k]=a2[i]; k++; } } cout<<"\nUnion of two arrays is:\n"; for(i=0;i<k;++i){ cout<<u[i]<<" "; } return 0; }
The post C/C++ Program for Union of Two Arrays appeared first on The Crazy Programmer.