
03/05/2023
18/05/2023
Để thực hiện thuật toán tìm kiếm nhị phân, danh sách cần được sắp xếp theo thứ tự tăng dần hoặc giảm dần trước. Trong trường hợp này, danh sách chưa được sắp xếp, nên chúng ta cần sắp xếp trước khi áp dụng thuật toán tìm kiếm nhị phân.
Dưới đây là một đoạn mã Python để tìm kiếm vị trí của "Vi" trong danh sách đã sắp xếp:
danh_sach = ['Bình', 'Hoa', 'Lan', 'Ly', 'Mai', 'Phong', 'Quân', 'Vi']
danh_sach_sap_xep = sorted(danh_sach) # Sắp xếp danh sách
tim_kiem = 'Vi'
def tim_kiem_nhi_phan(danh_sach, tim_kiem):
low = 0
high = len(danh_sach) - 1
buoc = 0
while low <= high:
mid = (low + high) // 2
guess = danh_sach[mid]
buoc += 1
if guess == tim_kiem:
return mid, buoc
elif guess < tim_kiem:
low = mid + 1
else:
high = mid - 1
return None, buoc
vi_tri, so_buoc = tim_kiem_nhi_phan(danh_sach_sap_xep, tim_kiem)
if vi_tri is not None:
print(f"Vị trí của '{tim_kiem}' trong danh sách là {vi_tri}.")
print(f"Số bước cần thiết để tìm thấy: {so_buoc}.")
else:
print(f"'{tim_kiem}' không có trong danh sách.")
Kết quả sẽ cho biết vị trí của "Vi" trong danh sách đã sắp xếp cùng với số bước cần thiết để tìm thấy.
Nếu bạn muốn hỏi bài tập
Các câu hỏi của bạn luôn được giải đáp dưới 10 phút
CÂU HỎI LIÊN QUAN
Top thành viên trả lời