Phạm vi tìm kiếm (L -> R)
Mid (Giữa)
Tìm thấy
Bỏ qua
Trạng thái:
Sẵn sàng. Hãy nhập số cần tìm và nhấn bắt đầu.
Giải thích thuật toán
while (L <= R) {
mid = floor((L + R) / 2);
if (arr[mid] == target)
return mid; // Tìm thấy
if (arr[mid] < target)
L = mid + 1; // Tìm bên phải
else
R = mid - 1; // Tìm bên trái
}
return -1; // Không tìm thấy
Nguyên lý: Tìm kiếm nhị phân chỉ hoạt động trên danh sách đã sắp xếp.
1. So sánh giá trị cần tìm với phần tử ở giữa (Mid).
2. Nếu bằng nhau, ta tìm thấy vị trí.
3. Nếu giá trị cần tìm lớn hơn Mid, ta bỏ qua nửa bên trái và tìm tiếp ở nửa bên phải.
4. Nếu giá trị cần tìm nhỏ hơn Mid, ta bỏ qua nửa bên phải và tìm tiếp ở nửa bên trái.
Mỗi bước loại bỏ được 50% số phần tử, giúp thuật toán cực kỳ nhanh (Độ phức tạp O(log n)).