Python程序可以在三个排序的数组中找到共同的元素?
在这里,我们首先创建3个数组,它们是用户输入的未排序数组,然后对所有3个未排序数组进行排序。数组的大小为n1,n2,n3。每个数组的起始地址为0.i=0,j=0,k=0,然后遍历三个数组的所有元素并检查三个数组的元素是否相同或不,如果相同,则打印元素,否则转到下一个元素。
示例
A = {1, 2, 3, 4, 5} B = {2, 5, 12, 22, 7} C = {1, 9, 2, 89, 80}
输出结果
2
算法
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
范例程式码
# 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)
输出结果
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