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

Sử dụng thuật toán tìm kiếm nhị phân, hãy mô tả các bước để tìm được bạn Quân trong dãy sau

Câu 16:  Sử dụng thuật toán tìm kiếm nhị phân, hãy mô tả các bước để tìm được bạn Quân trong dãy sau: [ Bình, Hoa, Lan, Ly, Mai, Phong, Phúc, Quân, Vi ]?
 

1 trả lời
Hỏi chi tiết
73
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Để tìm bạn Quân trong dãy đã cho, ta sẽ sử dụng thuật toán tìm kiếm nhị phân như sau:

1. Sắp xếp dãy theo thứ tự từ điển: [ Bình, Hoa, Lan, Ly, Mai, Phong, Phúc, Quân, Vi ]
2. Đặt hai biến low = 0 và high = độ dài của dãy - 1. Trên dãy đã sắp xếp, low sẽ trỏ đến phần tử đầu tiên và high sẽ trỏ đến phần tử cuối cùng.
3. Lặp lại các bước sau cho đến khi low <= high:
- Tính mid = (low + high) / 2 là vị trí giữa của dãy.
- So sánh phần tử ở vị trí mid với bạn Quân:
+ Nếu phần tử ở vị trí mid bằng bạn Quân, kết thúc thuật toán và thông báo đã tìm thấy.
+ Nếu phần tử ở vị trí mid lớn hơn bạn Quân, cập nhật high = mid - 1.
+ Nếu phần tử ở vị trí mid nhỏ hơn bạn Quân, cập nhật low = mid + 1.
4. Nếu không tìm thấy bạn Quân sau khi low > high, thông báo rằng bạn Quân không có trong dãy.

Áp dụng thuật toán trên vào dãy đã cho, ta sẽ tìm được bạn Quân sau một số bước nhất định.
1
0
Hươngg Hươngg
28/04 20:35:06
+5đ tặng
  1. Sắp xếp dãy theo thứ tự bảng chữ cái để có thứ tự tăng dần: [ Bình, Hoa, Lan, Ly, Mai, Phong, Phúc, Quân, Vi ].

  2. Thiết lập hai chỉ số:

    • L: chỉ số bắt đầu của dãy, ban đầu là 0.
    • R: chỉ số kết thúc của dãy, ban đầu là độ dài của dãy - 1.
  3. Tiến hành tìm kiếm:

    • Tại mỗi bước:
      • Tính chỉ số trung bình của dãy: mid = (L + R) / 2.
      • So sánh phần tử ở chỉ số trung bình với tên "Quân":
        • Nếu phần tử tại chỉ số trung bình bằng "Quân", kết thúc tìm kiếm.
        • Nếu phần tử tại chỉ số trung bình lớn hơn "Quân", đặt chỉ số kết thúc (R) bằng mid - 1.
        • Nếu phần tử tại chỉ số trung bình nhỏ hơn "Quân", đặt chỉ số bắt đầu (L) bằng mid + 1.
    • Lặp lại quá trình cho đến khi tìm thấy "Quân" hoặc không còn phần tử nào để kiểm tra.
  4. Kết quả:

    • Nếu tìm thấy "Quân", trả về vị trí của "Quân" trong dãy.
    • Nếu không tìm thấy, thông báo rằng "Quân" không có trong dãy.

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 nhập 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 học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập liên quan
Bài tập Tin học Lớp 7 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