The Vi
HomeAlgorithmsAboutAPI
🇻🇳 Tiếng Việt🇬🇧 English

© 2026 All rights reserved · Nguyen Duong The Vi

Back to home
Nguyen Duong The Vi
Nguyen Duong The ViVerified account
2026-05-12·

Thuật toán tìm kiếm nhị phân (Binary Search)

Binary Search là thuật toán tìm kiếm hiệu quả trên mảng đã sắp xếp, với độ phức tạp O(log n) — nhanh hơn nhiều so với tìm kiếm tuyến tính.

#searching#binary-search#co-ban
Thuật toán tìm kiếm nhị phân (Binary Search)

Ý tưởng

Binary Search (tìm kiếm nhị phân) chỉ hoạt động trên mảng đã được sắp xếp. Mỗi bước, ta so sánh phần tử cần tìm với phần tử ở giữa, sau đó loại bỏ một nửa mảng không cần xét.

Độ phức tạp

Trường hợp Độ phức tạp
Tốt nhất O(1)
Trung bình O(log n)
Tệ nhất O(log n)
Bộ nhớ O(1)

Cài đặt bằng JavaScript

function binarySearch(arr, target) {
    let left = 0
    let right = arr.length - 1

    while (left <= right) {
        const mid = Math.floor((left + right) / 2)

        if (arr[mid] === target) return mid
        if (arr[mid] < target) left = mid + 1
        else right = mid - 1
    }

    return -1
}

console.log(binarySearch([1, 3, 5, 7, 9, 11], 7))
// → 3

Lưu ý

  • Mảng phải được sắp xếp trước.
  • Khi mảng nhỏ, tìm kiếm tuyến tính có khi còn nhanh hơn vì chi phí của các phép so sánh.
  • Có thể mở rộng để tìm cận trên (upper_bound) và cận dưới (lower_bound).
Vi

Related posts

  • Thuật toán sắp xếp nổi bọt (Bubble Sort)

    2026-05-13