Find Intersection of Two Arrays in C++

In this tutorial, we will learn how to find the intersection of two 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 intersection of two arrays: is the set of all elements of A that also belong to B (or vice versa).

Example: 

Array1: { 1, 2, 3, 4, 5 }

Array2: { 4, 5, 6, 7, 8, 9, 10 }

The intersection of given two arrays: { 4, 5 }. Because elements 4 and 5 are common in both the arrays.

(*Note: Array should not contain 1 element twice.)

Program to Find Intersection of Two Arrays in C++

#include<iostream>
using namespace std;

int main()
{
  int n1,n2,i,j;
  cout<<"Enter the no. of elements of the 1st array: ";
  cin>>n1;
  
  /* declaring arr1 of size n1 */
  int arr1[n1];

  /* Enter distinct elements */
  cout<<"Enter 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];

  /* Enter distinct elements */
  cout<<"Enter the elements of the 2nd array: ";
  for(i=0;i<n2;i++)
  {
    cin>>arr2[i];
  }
  
  /* printing elements that are common in both the arrays */
  cout<<"\nThe intersection of the two arrays: ";
  for(i=0;i<n1;i++)
  {
    for(j=0;j<n2;j++)
    {
      if(arr1[i]==arr2[j])
      {
        cout<<arr1[i]<<" ";
      }
    }
  }
  
  return 0;
}

Input/Output:

Enter the no. of elements of the 1st array: 5
Enter the elements of the 1st array: -4 1 3 0 8

Enter the no. of elements of the 2nd array: 8
Enter the elements of the 2nd array: 3 -7 -4 9 6 0 17 5

The intersection of the two arrays: -4 3 0

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:

  1. Print all the Repeated Numbers with Frequency in an Array in C++
  2. Kruskal’s algorithm in C++

3 responses to “Find Intersection of Two Arrays in C++”

  1. Gyan prakash ram says:

    does intersection contains duplicate values ,if not then this logic may be wrong for this condition :
    n1=6
    n2=4
    arr1=1,5,6,9,8,5
    arr2=8,9,5,1
    then their output will be 1,5,9,8,5 and here 5 comes two times.

    • HARGOVIND SINGH says:

      void intersection(int *input1, int *input2, int size1, int size2)
      {

      for (int i = 0; i < size1; i++)
      {
      for (int j = 0; j < size2; j++)
      {
      if (input1[i] == input2[j])
      {
      cout << input1[i] << " ";
      input2[j] = INT_MIN;
      break;
      }
      }
      }
      }

  2. amish says:

    for a1=6 2 6 2 1 9 8
    for a2=3 6 8 2 9
    for this output is comin wrong

Leave a Reply

Your email address will not be published. Required fields are marked *