Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python tìm phần tử chung trong ba mảng đã sắp xếp

Ở đây ta tạo 3 mảng nhập từ người dùng chưa sắp xếp, sau đó sắp xếp cả 3. Kích thước mảng là n1,n2,n3. Chỉ mục bắt đầu của mỗi mảng là 0. i=0,j=0,k=0, duyệt qua tất cả phần tử của ba mảng và kiểm tra phần tử của ba mảng có giống nhau không, nếu giống thì in phần tử đó, ngược lại chuyển sang phần tử tiếp theo.

Ví dụ

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

Kết quả

 2 

Thuật toán

 commonele(A1,A2,A3,n1,n2,n3) /* A1, A2, A3 là ba mảng nguyên đã sắp xếp và size1, size2, size3 là kích thước mảng.*/ Bước 1: Khởi tạo chỉ mục bắt đầu cho A1, A2, A3. i=0, j=0, k=0 Bước 2: Lặp qua ba mảng khi mảng không rỗng. While(i < size1 && j < size2 && k < size3) Bước 3: Kiểm tra giá trị A1,A2,A3. Nếu cùng giá trị thì in, ngược lại tiến tiếp ở tất cả mảng. Bước 4: Kết thúc While 

Mã ví dụ

 # In phần tử chung trong ba mảng đã sắp xếp def commonele(X, Y, Z, n1, n2, n3): i, j, k = 0, 0, 0 print("Phần tử chung là ::>") 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 # Chương trình chính A=list() B=list() C=list() n1=int(input("Nhập kích thước List đầu tiên ::")) n2=int(input("Nhập kích thước List thứ hai ::")) n3=int(input("Nhập kích thước List thứ ba ::")) print("Nhập Phần Tử List Đầu Tiên ::") for i in range(int(n1)): k=int(input("")) A.append(k) print("Nhập Phần Tử List Thứ Hai ::") for j in range(int(n2)): k1=int(input("")) B.append(k1) print("Nhập Phần Tử List Thứ Ba ::") for j in range(int(n3)): k1=int(input("")) C.append(k1) X=sorted(A) Y=sorted(B) Z=sorted(C) print("List Đã Sắp Xếp Thứ Nhất ::>", X) print("List Đã Sắp Xếp Thứ Hai ::>", Y) print("List Đã Sắp Xếp Thứ Ba ::>", Z) commonele(X, Y, Z, n1, n2, n3) 

Kết quả

 Nhập kích thước List đầu tiên :: 4 Nhập kích thước List thứ hai :: 4 Nhập kích thước List thứ ba :: 5 Nhập Phần Tử List Đầu Tiên :: 23 12 45 8 Nhập Phần Tử List Thứ Hai :: 34 8 45 120 Nhập Phần Tử List Thứ Ba :: 2 4 8 45 1 List Đã Sắp Xếp Thứ Nhất ::> [8, 12, 23, 45] List Đã Sắp Xếp Thứ Hai ::> [8, 34, 45, 120] List Đã Sắp Xếp Thứ Ba ::> [1, 2, 4, 8, 45] Phần tử chung là ::> 8 45