ในบทความนี้ เราจะเรียนรู้วิธีการแก้ปัญหาต่อไปนี้:
ข้อความปัญหา — กำหนดอาร์เรย์ ให้จัดเรียงโดยใช้ Gnome Sort
อัลกอริทึม
1. เริ่มต้นท่องอาร์เรย์จากซ้ายไปขวา 2. หากองค์ประกอบปัจจุบันมากกว่าหรือเท่ากับองค์ประกอบก่อนหน้า ให้ก้าวไปข้างหน้า 1 ขั้น 3. มิฉะนั้น หากองค์ประกอบปัจจุบันน้อยกว่าองค์ประกอบก่อนหน้า ให้สลับทั้งสององค์ประกอบและก้าวถอยหลัง 1 ขั้น 4. ทำซ้ำขั้นตอนข้างต้นจนถึงปลายอาร์เรย์
มาเปลี่ยนดูโค้ดตัวอย่างด้านล่างนี้:
ตัวอย่างโค้ด
def gnomeSort(arr, n):
index = 0
while index < n:
if index == 0:
index = index + 1
if arr[index] >= arr[index - 1]:
index = index + 1
else:
arr[index], arr[index-1] = arr[index-1], arr[index]
index = index - 1
return arr
# โปรแกรมหลัก
arr = [1, 4, 2, 3, 6, 5, 8, 7]
n = len(arr)
arr = gnomeSort(arr, n)
print("Sorted sequence is:")
for i in arr:
print(i, end=" ")
ผลลัพธ์
Sorted sequence is: 1 2 3 4 5 6 7 8

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