Trang chủ Lớp 11 Tin học lớp 11 SGK Tin học 11 - Kết nối tri thức Luyện tập 2 Bài 19 (trang 89) Tin học 11: Viết chương...

Luyện tập 2 Bài 19 (trang 89) Tin học 11: 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

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.”)