อัลกอริทึม Python

Selection Sort ใน Python

List แบ่งเป็นส่วนที่เรียงแล้วและยังไม่เรียง

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

List แบ่งเป็นส่วนที่เรียงแล้วและยังไม่เรียง

เลือกค่าน้อยสุดที่เหลือไปวางทีละตำแหน่ง

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

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

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

O(n²)

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

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

รันโค้ด →
main.py
def selection_sort(values):
    result = values.copy()
    for start in range(len(result)):
        minimum = start
        for index in range(start + 1, len(result)):
            if result[index] < result[minimum]:
                minimum = index
        result[start], result[minimum] = result[minimum], result[start]
    return result

print(selection_sort([64, 25, 12, 22, 11]))

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

[11, 12, 22, 25, 64]

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

แต่ละรอบต้องหาค่าน้อยสุด ใช้เวลา O(n²) และหน่วยความจำเพิ่ม O(1)

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

แบบฝึกหัด

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

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