ในบทความนี้ เราจะเรียนรู้วิธีแก้ปัญหาตามข้อกำหนดด้านล่าง
ข้อกำหนดปัญหา − เราได้รับลิสต์ ต้องแทรกสมาชิกในลิสต์โดยไม่เปลี่ยนลำดับที่เรียงแล้ว
มี 2 วิธีตามที่อภิปรายด้านล่าง
วิธีที่ 1: Brute-force method
ตัวอย่าง
def insert(list_, n):
# ค้นหา
for i in range(len(list_)):
if list_[i] > n:
index = i
break
# แทรก
list_ = list_[:i] + [n] + list_[i:]
return list_
# Driver function
list_ = ['t','u','t','o','r']
n = 'e'
print(insert(list_, n))
ผลลัพธ์
['e', 't', 'u', 't', 'o', 'r']
วิธีที่ 2: ใช้โมดูล bisect
ตัวอย่าง
# built-in bisect module
import bisect
def insert(list_, n):
bisect.insort(list_, n)
return list_
list_ = ['t','u','t','o','r']
n = 'e'
print(insert(list_, n))
ผลลัพธ์
['e', 't', 'u', 't', 'o', 'r']

ตัวแปรทั้งหมดประกาศในขอบเขตท้องถิ่นและอ้างอิงของพวกเขาเห็นในรูปด้านบน
สรุป
ในบทความนี้ เราได้เรียนรู้วิธีแทรกสมาชิกในลิสต์ที่เรียงลำดับแล้ว โมดูล bisect เป็นวิธีที่มีประสิทธิภาพและแนะนำให้ใช้