อัลกอริทึม Python

การค้นหาเชิงเส้นใน Python

Linear search ใช้ได้แม้ข้อมูลยังไม่เรียง

การค้นหาแบบเชิงเส้นคืออะไร?

การค้นหาแบบเชิงเส้นตรวจสอบสมาชิกทีละตัวจากต้นรายการจนพบค่าเป้าหมายหรือถึงท้ายรายการ โดยไม่จำเป็นต้องเรียงข้อมูลก่อน

ขั้นตอนการทำงานของอัลกอริทึม

  1. เริ่มที่ index 0
  2. เปรียบเทียบสมาชิกปัจจุบันกับค่าเป้าหมาย
  3. หากเท่ากันให้คืนค่า index มิฉะนั้นไปยังสมาชิกถัดไป
  4. คืนค่า -1 เมื่อถึงสมาชิกสุดท้ายแล้วยังไม่พบ
ความซับซ้อน: ใช้เวลา O(n) ในกรณีเฉลี่ยและกรณีแย่ที่สุด และใช้หน่วยความจำเพิ่ม O(1)

ภาพจำลอง การค้นหาเชิงเส้นใน Python

O(n)

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

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

รันโค้ด →
main.py
def linear_search(values, target):
    for index, value in enumerate(values):
        if value == target:
            return index
    return -1

print(linear_search([14, 3, 27, 8, 19], 8))

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

3

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

แต่ละค่าถูกเทียบไม่เกินหนึ่งครั้ง ใช้เวลา O(n) และหน่วยความจำ O(1)

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

แบบฝึกหัด

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

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