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 และทดสอบกรณีขอบก่อนใช้ชุดข้อมูลที่ใหญ่ขึ้น
- ทดสอบ input ว่าง หนึ่งสมาชิก และค่าซ้ำ
- แสดงสถานะหลังแต่ละขั้นตอน
- เปรียบเทียบประสิทธิภาพกับวิธีอื่น