Python มีโมดูล bisect สำหรับแทรกค่าในลิสต์ที่เรียงแล้วโดยคงลำดับได้อย่างมีประสิทธิภาพ
ขั้นตอน
- Import โมดูล
bisect - เตรียมลิสต์และค่าที่ต้องการแทรก
- ใช้
bisect.insort(list, element) - พิมพ์ผลลัพธ์
ตัวอย่าง
import bisect numbers = [10, 23, 27, 32] element = 25 bisect.insort(numbers, element) print(numbers) # [10, 23, 25, 27, 32]
ผลลัพธ์
[10, 23, 25, 27, 32]
สรุป
วิธีวนลูปหาตำแหน่งเองก็ได้แต่ไม่มีประสิทธิภาพเท่า insort ที่ใช้ binary search ภายใน