Find Union of Two Arrays in C++
In this tutorial, we will learn how to find the union of two unsorted arrays in C++. Before that let’s first understand what is array.
Array: is a derived data type that contains the same type of data. Like integer array stores values of only integer type, float array stores values of only float type.
Derived data type: is a data type that is defined by the user itself. Other derived data types are Structure, Class, Union, Enumeration, and Pointers.
The union of two arrays: is the set of all elements that are either in A or in B.
Example:
Array1: { 1, 2, 3, 4, 5 }
Array2: { 4, 5, 6, 7, 8, 9, 10 }
The union of given two arrays: { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }. Because all these elements are present either in Array1 or in Array2.
(*Note: Array should not contain 1 element twice.)
Program to Find Union of Two Unsorted Arrays in C++
#include<iostream>
using namespace std;
int main()
{
int n1,n2,i,j,flag;
cout<<"Enter the no. of elements of the 1st array: ";
cin>>n1;
/* declaring arr1 of size n1 */
int arr1[n1];
cout<<"\nEnter the elements of the 1st array: ";
for(i=0;i<n1;i++)
{
cin>>arr1[i];
}
cout<<"\nEnter the no. of elements of the 2nd array: ";
cin>>n2;
/* declaring arr2 of size n2 */
int arr2[n2];
cout<<"\nEnter the elements of the 2nd array: ";
for(i=0;i<n2;i++)
{
cin>>arr2[i];
}
/* printing elements that are either in array1 or in array2 */
cout<<"\nUnion of the two arrays: ";
/* First print all the elements of array1 */
for(i=0;i<n1;i++)
{
cout<<arr1[i]<<" ";
}
/* Then print all the elements that are in array2 but not in array1 */
for(j=0;j<n2;j++)
{
flag=0;
for(i=0;i<n1;i++)
{
if(arr1[i]==arr2[j])
{
flag=1;
break;
}
}
/* flag!=1 means element of array2 is not present in array1 */
if(flag!=1)
{
cout<<arr2[j]<<" ";
}
}
return 0;
}Input/Output:
Enter the no. of elements of the 1st array: 4 Enter the elements of the 1st array: -3 0 4 7 Enter the no. of elements of the 2nd array: 6 Enter the elements of the 2nd array: 4 1 9 7 2 8 Union of the two arrays: -3 0 4 7 1 9 2 8
Time Complexity
O(n1*n2), where n1 is the no. of elements of the first array and n2 is no. of elements of the second array.
You may also read:
This program will be false for some cases.
One of them is mentioned below :-
Enter the no. of elements of the 1st array: 4
Enter the elements of the 1st array:
1
2
3
1
Enter the no. of elements of the 2nd array: 4
Enter the elements of the 2nd array:
3
4
5
2
Union of the two arrays: 1 2 3 1 4 5