Giải Luyện tập 2 Bài 19. Bài toán tìm kiếm (trang 89) – SGK Tin học 11 Kết nối tri thức. Tham khảo: Dựa vào kiến thức trong bài để trả lời câu hỏi.
Câu hỏi/Đề bài:
Viết chương trình của thuật toán tìm kiếm nhị phân với dãy sắp xếp giảm dần.
Hướng dẫn:
Dựa vào kiến thức trong bài để trả lời câu hỏi.
Lời giải:
def binary_search_reverse(arr, target):
def binary_search_reverse_helper(arr, target, low, high):
if low > high:
return -1
mid = (low + high) // 2
if arr[mid] == target:
return mid
elif arr[mid] < target:
return binary_search_reverse_helper(arr, target, low, mid – 1)
else:
return binary_search_reverse_helper(arr, target, mid + 1, high)
return binary_search_reverse_helper(arr, target, 0, len(arr) – 1)
# Sử dụng ví dụ đầu vào để kiểm tra
arr = [10, 8, 6, 4, 2]
target = 6
# Gọi hàm tìm kiếm nhị phân với dãy sắp xếp giảm dần
result = binary_search_reverse(arr, target)
if result != -1:
print(“Phần tử”, target, “được tìm thấy tại vị trí”, result)
else:
print(“Phần tử”, target, “không tồn tại trong dãy.”)