Bài tập  /  Bài đang cần trả lời

Tin học - Lớp 7
03/05 21:30:05

Mô phỏng thuật toán tìm kiếm nhị phân để tìm số 15 trong danh sách [3, 5, 7, 11, 12, 25]?

 Mô phỏng thuật toán tìm kiếm nhị phân để tìm số 15 trong danh sách [3, 5, 7, 11, 12, 25]?
1 trả lời
Hỏi chi tiết
Trợ lý ảo
70
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Để mô phỏng thuật toán tìm kiếm nhị phân, ta sẽ thực hiện các bước sau:

1. Sắp xếp danh sách theo thứ tự tăng dần: [3, 5, 7, 11, 12, 25]
2. Đặt hai biến low và high lần lượt là 0 và độ dài của danh sách - 1 (n - 1).
3. Lặp lại các bước sau cho đến khi low <= high:
a. Tính mid = (low + high) // 2
b. Nếu số ở vị trí mid trong danh sách bằng với số cần tìm (15), trả về vị trí mid.
c. Nếu số ở vị trí mid trong danh sách lớn hơn số cần tìm, đặt high = mid - 1.
d. Ngược lại, đặt low = mid + 1.
4. Nếu không tìm thấy số cần tìm trong danh sách, trả về -1.

Áp dụng thuật toán trên vào danh sách [3, 5, 7, 11, 12, 25] để tìm số 15:
1. Sắp xếp danh sách: [3, 5, 7, 11, 12, 25]
2. low = 0, high = 5
3.
a. mid = (0 + 5) // 2 = 2, danh sách[2] = 7 < 15, low = 3, high = 5
a. mid = (3 + 5) // 2 = 4, danh sách[4] = 12 < 15, low = 5, high = 5
a. mid = (5 + 5) // 2 = 5, danh sách[5] = 25 > 15, high = 4
4. low > high, trả về -1 (không tìm thấy số 15 trong danh sách).

Như vậy, sau khi thực hiện thuật toán tìm kiếm nhị phân, ta không tìm thấy số 15 trong danh sách [3, 5, 7, 11, 12, 25].
0
0
KaAe
03/05 21:54:14
+5đ tặng
list = [3, 5, 7, 11, 12, 25]
target = 15
low = 0
high = len(list) - 1
while low <= high:
      mid = (low + high) // 2
      if list[mid] == target:
           print(f"Số {target} nằm ở vị trí {mid} trong danh sách.")
           break
      elif list[mid] < target:
           low = mid + 1
      else:
           high = mid - 1
# Kiểm tra kết quả
if low > high:
       print(f"Số {target} không có trong danh sách.")

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng ký tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng bạn bè học sinh cả nước, đến LAZI, sôi động, tích cực, trải nghiệm
Câu hỏi Tin học mới nhất

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Gia sư Lazi Gia sư
×
Trợ lý ảo Trợ lý ảo