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

โปรแกรม Python กลับลำดับอาร์เรย์เป็นกลุ่มตามขนาดที่กำหนด

ใช้ลิสต์อินพุตผู้ใช้และขนาดกลุ่ม สร้างซับอาร์เรย์ตามขนาดกลุ่มแล้วกลับลำดับ ถ้าขนาดกลุ่ม(p) ไม่ใช่ตัวคูณของขนาดอาร์เรย์(n) กลุ่มสุดท้ายจะมีสมาชิกน้อยกว่า k และกลับทั้งหมด ถ้า p=1 อาร์เรย์ไม่เปลี่ยน ถ้า p>=n กลับทั้งอาร์เรย์

อัลกอริทึม

Revarray(A,n,p) /* A คืออาร์เรย์จำนวนเต็ม n ขนาดอาร์เรย์ ทุกซับอาร์เรย์ขนาด p เริ่มจากต้นทางและกลับ */
ขั้นตอนที่ 1: i คือตัวควบคุมลูป เริ่มต้น 0
ขั้นตอนที่ 2: while loop ตรวจสอบ i น้อยกว่า n ถ้าจริง
ขั้นตอนที่ 2.1: L=i /* ซ้ายซับอาร์เรย์
ขั้นตอนที่ 2.2: R=min(i+p-1, n-1) /* ขวาซับอาร์เรย์
ขั้นตอนที่ 2.3: while loop ตรวจสอบ L น้อยกว่า R ถ้าจริง
ขั้นตอนที่ 2.3.1: สลับซ้าย A(L) และขวา A(R)
ขั้นตอนที่ 2.3.2: L เพิ่ม 1
ขั้นตอนที่ 2.3.3: R ลด 1
ขั้นตอนที่ 2.4: End While
ขั้นตอนที่ 2.5: i=i+p
ขั้นตอนที่ 3: End While
ขั้นตอนที่ 4: หยุด

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

# กลับอาร์เรย์เป็นกลุ่มขนาดกำหนด
def arrayreverse(A, n, p):
    i = 0
    while(i < n):
        L = i
        R = min(i + p - 1, n - 1)
        while (L < R):
            A[L], A[R] = A[R], A[L]
            L += 1
            R -= 1
        i += p

# โค้ดหลัก
# ใส่ข้อมูลในอาร์เรย์
A = list()
n = int(input("ป้อนขนาดของอาร์เรย์ ::"))
print("ป้อนตัวเลข ::")
for i in range(int(n)):
    k = int(input(""))
    A.append(int(k))
p = int(input("ป้อนขนาดของกลุ่ม ::"))
arrayreverse(A, n, p)
for i in range(0, n):
    print(A[i], end=" ")

ผลลัพธ์

ป้อนขนาดของอาร์เรย์ ::6
ป้อนตัวเลข :: 11 22 33 44 55 66
ป้อนขนาดของกลุ่ม ::2
22 11 44 33 66 55