Back to Home

ការស្វែងរក​ជា​គោល​ពីរ

ក្បួន​ដោះស្រាយ​ប្រកបដោយ​ប្រសិទ្ធភាព​សម្រាប់​ស្វែងរក​ធាតុ​ពី​បញ្ជី​ដែល​បាន​តម្រៀប។ វា​ដំណើរការ​ដោយ​បែងចែក​ជា​ពីរ​ម្ដង​ហើយ​ម្ដង​ទៀត​នូវ​ផ្នែក​នៃ​បញ្ជី​ដែល​អាច​មាន​ធាតុ​នោះ។

Visualization

Step 1 / 10
Speed:

Details

Analogy

นี่​เหมือนกับ​การ​ค้นหา​ชื่อ​ใน​สมุด​โทรศัพท์។ คุณ​เปิด​ไป​ที่​ตรง​กลาง។ หาก​ชื่อ​ที่​คุณ​กำลัง​ค้นหา​มา​ตาม​ตัวอักษร​ก่อน​ชื่อ​ใน​หน้า​นั้น คุณ​จะ​รู้​ว่า​ต้อง​เน้น​ไป​ที่​ครึ่ง​แรก។ คุณ​ทำ​ซ้ำ​ขั้น​ตอน​นี้ โดย​ลด​พื้นที่​การ​ค้นหา​ของ​คุณ​ลง​ครึ่ง​หนึ่ง​ใน​แต่​ละ​ครั้ง จนกว่า​คุณ​จะ​ระบุ​ชื่อ​ได้។

Purpose

ដើម្បី​ស្វែងរក​ตำแหน่ง​ของ​ค่า​เป้าหมาย​อย่าง​รวดเร็ว​ภาย​ใน​อาร์เรย์​ที่​เรียง​ลำดับ។

Use Cases

พบ​บ่อย​มาก​ใน​การ​เขียน​โปรแกรม။ ใช้​ใน​เครื่องมือ​ค้นหา การ​จัด​ทำ​ดัชนี​ฐาน​ข้อมูล และ​แอปพลิเคชัน​ใดๆ ที่​ต้อง​การ​การ​ค้นหา​ที่​รวดเร็ว​บน​ชุด​ข้อมูล​ขนาด​ใหญ่​ที่​เรียง​ลำดับ។

Algorithm Steps

Line 1
1
left = 0, right = n-1
2
while left <= right:
3
mid = (left + right) / 2
4
if arr[mid] == target:
5
return mid
6
else if arr[mid] < target:
7
left = mid + 1
8
else:
9
right = mid - 1
10
return -1 (not found)
Current
Executed
Pending

Explanation

What's Happening?

Step 1/10

ចាប់ផ្តើមស្វែងរកគោលដៅ 17 ក្នុងជួរពេញលេញ [0, 9]។

Updates with each step • Clickfor full view

Code Implementation

def binary_search(arr, target):
    left, right = 0, len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1
ការស្វែងរក​ជា​គោល​ពីរ - Interactive Visualization | AlgoViz | AlgoViz