Mô phỏng thuật toán Tìm kiếm mũ

Exponential Search · Nhóm: Tìm kiếm

Tìm kiếm mũ (Exponential Search), nhóm Tìm kiếm.

Mã Python

def exponential_search(a, target):
    if a[0] == target:
        return 0
    bound = 1
    while bound < len(a) and a[bound] < target:
        bound *= 2
    lo, hi = bound // 2, min(bound, len(a) - 1)
    while lo <= hi:
        mid = (lo + hi) // 2
        if a[mid] == target:
            return mid
        elif a[mid] < target:
            lo = mid + 1
        else:
            hi = mid - 1
    return -1

Mở trang để xem mô phỏng từng bước và xuất slide bài giảng.