Trang chủ Lớp 11 SGK Tin học 11 - Kết nối tri thức Cho A là danh sách tên các học sinh trong lớp được...

Cho A là danh sách tên các học sinh trong lớp được sắp xếp theo thứ tự bảng chữ cái...

Vận dụng kiến thức trong bài để trả lời câu hỏi Gợi ý giải Câu hỏi 2 trang 84 Tin học 11 - Kết nối tri thức, Vận dụng 2 - trang 89 Bài 19. Bài toán tìm kiếm SGK Tin học 11 - Kết nối tri thức.

Cho A là danh sách tên các học sinh trong lớp được sắp xếp theo thứ tự bảng chữ cái, viết chương trình tìm kiếm nhị phân để tìm ra các học sinh có tên là Minh.

Method - Phương pháp giải/Hướng dẫn/Gợi ý

Vận dụng kiến thức trong bài để trả lời câu hỏi,

Answer - Lời giải/Đáp án

def binary_search(names, target):

 low = 0

 high = len(names) - 1

 while low <= high:

  mid = (low + high) // 2

  mid_name = names[mid]

  if mid_name == target:

   return mid

  elif mid_name < target:

   low = mid + 1

Advertisements (Quảng cáo)

  else:

   high = mid - 1

return -1

# Danh sách tên học sinh trong lớp (đã được sắp xếp theo thứ tự bảng chữ cái)

class_names = ["An”, "Bình”, "Cường”, "Đạt”, "Hoàn”, "Minh”, "Nam”, "Thảo”, "Trung”]

# Tên học sinh cần tìm

target_name = "Minh”

# Gọi hàm tìm kiếm nhị phân

result = binary_search(class_names, target_name)

if result != -1:

 print("Học sinh có tên là”, target_name, "được tìm thấy tại vị trí”, result)

else:

 print("Học sinh có tên là”, target_name, "không tồn tại trong danh sách.”)