อัลกอริทึม Python

Bubble Sort ใน Python

ในแต่ละรอบ ค่าที่มากจะค่อย ๆ เคลื่อนไปท้าย list

Bubble Sort ใน Python คืออะไร?

ในแต่ละรอบ ค่าที่มากจะค่อย ๆ เคลื่อนไปท้าย list

เรียงข้อมูลด้วยการสลับสมาชิกที่อยู่ติดกัน

ควรใช้เมื่อใด?

  • ทำความเข้าใจอัลกอริทึมและโครงสร้างข้อมูล
  • สังเกตแต่ละขั้นตอนและกรณีขอบ
  • เปรียบเทียบเวลาและหน่วยความจำ

ภาพจำลอง Bubble Sort ใน Python

O(n²)

กด เล่น หรือ ทีละขั้น เพื่อดูการเปรียบเทียบและการย้ายข้อมูลแต่ละขั้น

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

รันโค้ด →
main.py
def bubble_sort(values):
    result = values.copy()
    for end in range(len(result) - 1, 0, -1):
        swapped = False
        for index in range(end):
            if result[index] > result[index + 1]:
                result[index], result[index + 1] = result[index + 1], result[index]
                swapped = True
        if not swapped:
            break
    return result

print(bubble_sort([5, 1, 4, 2, 8]))

ผลลัพธ์ที่คาดหวัง

[1, 2, 4, 5, 8]

หลักการทำงาน

คู่ที่ผิดลำดับจะถูกสลับ มีเวลา O(n²) จึงเหมาะกับการเรียนรู้เป็นหลัก

เปลี่ยนค่าและรันโปรแกรมด้วย คอมไพเลอร์ Python ออนไลน์ของ CodeUtility โดยไม่ต้องติดตั้ง Python

แบบฝึกหัด

ลองเปลี่ยน input และทดสอบกรณีขอบก่อนใช้ชุดข้อมูลที่ใหญ่ขึ้น

  1. ทดสอบ input ว่าง หนึ่งสมาชิก และค่าซ้ำ
  2. แสดงสถานะหลังแต่ละขั้นตอน
  3. เปรียบเทียบประสิทธิภาพกับวิธีอื่น
รันใน Python IDE →