Tìm Kiếm Nhị Phân (Binary Search)

Minh hoạ trực quan phương pháp Đệ Quy & Tư tưởng "Chia Để Trị" (Divide and Conquer)

Độ phức tạp Thời gian: O(log N) Độ phức tạp Không gian: O(log N)

Không gian tìm kiếm

Số bước: 0

Hãy nhập một số và bấm Bắt đầu tìm kiếm.

Pseudocode (Đệ quy)

function binarySearch(arr, target, left, right) {
if (left > right) {
return -1; // Không tìm thấy
}
let mid = Math.floor((left + right) / 2);
if (arr[mid] === target) {
return mid; // Tìm thấy!
}
else if (arr[mid] > target) {
// Divide: Bỏ nửa phải
return binarySearch(arr, target, left, mid - 1);
}
else {
// Divide: Bỏ nửa trái
return binarySearch(arr, target, mid + 1, right);
}
}
Nhật ký quá trình (Logs)
Hệ thống đang chờ lệnh...