Python program to find common elements in three sorted arrays?

Here first we create 3 array which are user input unsorted array, then we sort all 3 unsorted arrays. The size of the arrays are n1,n2,n3.starting address of every array is 0.i=0,j=0,k=0,then traverse all the elements of three array and check the element of three arrays are same or not ,if same then print the element otherwise go the next element.

Example

A = {1, 2, 3, 4, 5}
B = {2, 5, 12, 22, 7}
C = {1, 9, 2, 89, 80}


Output

2


Algorithm

commonele(A1,A2,A3,n1,n2,n3)
/* A1, A2, A3 are three integer sorted array and size1, size2, size3 are the sizes of the array.*/
Step 1: Initialize the starting indexes for A1, A2, A3.
i=0, j=0, k=0
Step 2:  iterate through three Arrays while arrays are nonempty.
While(i<size1 && j<size2 && k<size3)
Step 3: then check every value of A1,A2,A3.if the value are same then print otherwise move ahead in all arrays.
Step 4: End While


Example Code

# To print common elements in three sorted arrays
def commonele (X, Y, Z, n1, n2, n3):
i, j, k = 0, 0, 0
print("Common elements are ::>")
while (i < n1 and j <n2 and k< n3):
if (X[i] == Y[j] and Y[j] == Z[k]):
print (X[i])
i += 1
j += 1
k += 1
elif X[i] < Y[j]:
i += 1
elif Y[j] < Z[k]:
j += 1
else:
k += 1
# Driver program
A=list()
B=list()
C=list()
n1=int(input("Enter the size of the First List ::"))
n2=int(input("Enter the size of the Second List ::"))
n3=int(input("Enter the size of the Third List ::"))
print("Enter the Element of First List ::")
for i in range(int(n1)):
k=int(input(""))
A.append(k)
print("Enter the Element of Second List ::")
for j in range(int(n2)):
k1=int(input(""))
B.append(k1)
print("Enter the Element of Third List ::")
for j in range(int(n3)):
k1=int(input(""))
C.append(k1)
X=sorted(A)
Y=sorted(B)
Z=sorted(C)
print("First Sorted List ::>",X)
print("Second Sorted List ::>",Y)
print("Third Sorted List ::>",Z)
commonele(X, Y, Z, n1, n2, n3)


Output

Enter the size of the First List :: 4
Enter the size of the Second List :: 4
Enter the size of the Third List :: 5
Enter the Element of First List ::
23
12
45
8
Enter the Element of Second List ::
34
8
45
120
Enter the Element of Third List ::
2
4
8
45
1
First Sorted List ::> [8, 12, 23, 45]
Second Sorted List ::> [8, 34, 45, 120]
Third Sorted List ::> [1, 2, 4, 8, 45]
Common elements are ::>
8
45


Updated on: 30-Jul-2019

520 Views