ในบทความนี้ เราจะเรียนรู้วิธีการแก้ปัญหาต่อไปนี้:
ข้อความปัญหา — กำหนดอาร์เรย์ ให้จัดเรียงโดยใช้ 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

ตัวแปรทั้งหมดถูกประกาศในขอบเขตท้องถิ่น (local scope) และการอ้างอิงของมันแสดงในรูปภาพด้านบน
สรุป
ในบทความนี้ เราได้เรียนรู้วิธีการเขียนโปรแกรม Python สำหรับ Odd-Even Sort / Brick Sort