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 vị trí của một số trong một dãy số cho trước

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 vị trí của một số trong một dãy số cho trước.

          Ví dụ: Tìm vị trí số 10 trong dãy số sau
 1               3               5                7                      10                  20

1 trả lời
Hỏi chi tiết
95
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Để tìm vị trí của số 10 trong dãy số cho trước, ta sử dụng thuật toán tìm kiếm nhị phân như sau:

1. Khởi tạo hai biến low và high lần lượt là vị trí đầu tiên và vị trí cuối cùng trong dãy số.
2. Lặp lại quá trình sau cho đến khi low <= high:
- Tính toán vị trí giữa của dãy số: mid = (low + high) / 2
- So sánh số ở vị trí mid với số cần tìm:
+ Nếu số ở vị trí mid bằng với số cần tìm, trả về vị trí mid.
+ Nếu số ở vị trí mid lớn hơn số cần tìm, cập nhật high = mid - 1.
+ Nếu số ở vị trí mid nhỏ hơn số cần tìm, cập nhật low = mid + 1.
3. Nếu không tìm thấy số cần tìm trong dãy số, trả về -1.

Áp dụng thuật toán trên vào ví dụ cụ thể, ta có:
- low = 1, high = 20
- mid = (1 + 20) / 2 = 10
- Số ở vị trí mid là 10, bằng với số cần tìm. Trả về vị trí mid là 5.

Do đó, số 10 được tìm thấy ở vị trí thứ 5 trong dãy số cho trước.
1
0
Hươngg Hươngg
29/04 08:38:33
+5đ tặng
  • Biên trái: 0

  • Biên phải: 5

  • Vị trí trung tâm: 0+5/2=2

  • So sánh số ở vị trí trung tâm (index 2) với số cần tìm (10).

  • Số ở vị trí trung tâm (5) nhỏ hơn số cần tìm (10), nên cập nhật biên trái thành vị trí trung tâm + 1 = 3.

  • Biên trái: 3

  • Biên phải: 5

  • Vị trí trung tâm: 3+5/2=4

  • So sánh số ở vị trí trung tâm (index 4) với số cần tìm (10).

  • Số ở vị trí trung tâm (10) bằng số cần tìm (10), nên trả về vị trí trung tâm (index 4).

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