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

โปรแกรม Python สำหรับ Odd-Even Sort / Brick Sort

ในบทความนี้ เราจะเรียนรู้วิธีการแก้ปัญหาต่อไปนี้:

ข้อความปัญหา — กำหนดอาร์เรย์ ให้จัดเรียงโดยใช้ Brick Sort

ที่นี่มี 2 ระยะ: ระยะคี่ (Odd Phase) และระยะคู่ (Even Phase) ในระยะคี่ จะทำ Bubble Sort บนองค์ประกอบที่มีดัชนีคี่ และในระยะคู่ จะทำ Bubble Sort บนองค์ประกอบที่มีดัชนีคู่

มาเปลี่ยนดูโค้ดตัวอย่างด้านล่างนี้:

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

def oddEvenSort(arr, n):
    # ตัวบ่งชี้ (flag)
    isSorted = 0
    while isSorted == 0:
        isSorted = 1
        # ระยะคี่ (Odd phase)
        for i in range(1, n-1, 2):
            if arr[i] > arr[i+1]:
                arr[i], arr[i+1] = arr[i+1], arr[i]
                isSorted = 0
        # ระยะคู่ (Even phase)
        for i in range(0, n-1, 2):
            if arr[i] > arr[i+1]:
                arr[i], arr[i+1] = arr[i+1], arr[i]
                isSorted = 0
    return

arr = [1, 4, 2, 3, 6, 5, 8, 7]
n = len(arr)
oddEvenSort(arr, n)
print("Sorted sequence is:")
for i in range(0, n):
    print(arr[i], end=" ")

ผลลัพธ์

Sorted sequence is: 1 2 3 4 5 6 7 8

โปรแกรม Python สำหรับ Odd-Even Sort / Brick Sort

ตัวแปรทั้งหมดถูกประกาศในขอบเขตท้องถิ่น (local scope) และการอ้างอิงของมันแสดงในรูปภาพด้านบน

สรุป

ในบทความนี้ เราได้เรียนรู้วิธีการเขียนโปรแกรม Python สำหรับ Odd-Even Sort / Brick Sort