Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python หาสมาชิกร่วมในสามอาร์เรย์ที่เรียงแล้ว

สร้างอาร์เรย์ 3 อาร์เรย์จากอินพุตผู้ใช้ (unsorted) แล้วเรียงทั้งสาม ขนาดคือ 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 คืออาร์เรย์จำนวนเต็มที่เรียงแล้ว size1,size2,size3 คือขนาด */
ขั้นตอนที่ 1: เริ่มต้นดัชนีสำหรับ A1, A2, A3: i=0, j=0, k=0
ขั้นตอนที่ 2: วนลูปผ่านสามอาร์เรย์พร้อมกัน while อาร์เรย์ไม่ว่าง
While(i

โค้ดตัวอย่าง

# พิมพ์สมาชิกร่วมในสามอาร์เรย์ที่เรียงแล้ว
def commonele(X, Y, Z, n1, n2, n3):
    i, j, k = 0, 0, 0
    print("สมาชิกร่วม ::>")
    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

# โปรแกรมหลัก
A = list()
B = list()
C = list()
n1 = int(input("ป้อนขนาดลิสต์แรก ::"))
n2 = int(input("ป้อนขนาดลิสต์ที่สอง ::"))
n3 = int(input("ป้อนขนาดลิสต์ที่สาม ::"))
print("ป้อนสมาชิกของลิสต์แรก ::")
for i in range(int(n1)):
    k = int(input(""))
    A.append(k)
print("ป้อนสมาชิกของลิสต์ที่สอง ::")
for j in range(int(n2)):
    k1 = int(input(""))
    B.append(k1)
print("ป้อนสมาชิกของลิสต์ที่สาม ::")
for j in range(int(n3)):
    k1 = int(input(""))
    C.append(k1)
X = sorted(A)
Y = sorted(B)
Z = sorted(C)
print("ลิสต์แรกที่เรียง ::>", X)
print("ลิสต์ที่สองที่เรียง ::>", Y)
print("ลิสต์ที่สามที่เรียง ::>", Z)
commonele(X, Y, Z, n1, n2, n3)

ผลลัพธ์

ป้อนขนาดลิสต์แรก :: 4
ป้อนขนาดลิสต์ที่สอง :: 4
ป้อนขนาดลิสต์ที่สาม :: 5
ป้อนสมาชิกของลิสต์แรก :: 23 12 45 8
ป้อนสมาชิกของลิสต์ที่สอง :: 34 8 45 120
ป้อนสมาชิกของลิสต์ที่สาม :: 2 4 8 45 1
ลิสต์แรกที่เรียง ::> [8, 12, 23, 45]
ลิสต์ที่สองที่เรียง ::> [8, 34, 45, 120]
ลิสต์ที่สามที่เรียง ::> [1, 2, 4, 8, 45]
สมาชิกร่วม ::> 8 45