Exponential Search · Nhóm: Tìm kiếm
Tìm kiếm mũ (Exponential Search), nhóm Tìm kiếm.
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.