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í sô 12 trong dãy sau:
3, 5, 7, 12, 9
Quảng cáo
1 câu trả lời 339
Để tìm vị trí số 12 trong dãy số [3, 5, 7, 12, 9] bằng thuật toán tìm kiếm nhị phân, chúng ta cần thực hiện các bước sau:
Bước 1: Sắp xếp dãy số
Thuật toán tìm kiếm nhị phân chỉ hoạt động trên dãy số đã được sắp xếp theo thứ tự tăng dần (hoặc giảm dần). Vì vậy, bước đầu tiên là sắp xếp dãy số ban đầu:
Dãy ban đầu: 3, 5, 7, 12, 9 Dãy đã sắp xếp: 3, 5, 7, 9, 12
Bước 2: Khởi tạo các biến
Chúng ta cần ba biến để theo dõi quá trình tìm kiếm:
low: Chỉ số của phần tử đầu tiên trong dãy (ban đầu là 0).
high: Chỉ số của phần tử cuối cùng trong dãy (ban đầu là độ dài của dãy trừ 1). Trong trường hợp này, độ dài dãy là 5, vậy high ban đầu là 4.
mid: Chỉ số của phần tử ở giữa dãy (sẽ được tính toán trong mỗi bước).
Bước 3: Thực hiện vòng lặp tìm kiếm
Chúng ta sẽ lặp lại các bước sau cho đến khi tìm thấy số 12 hoặc khi low lớn hơn high (điều này có nghĩa là số 12 không có trong dãy).
Lần lặp 1:
Tính chỉ số mid: mid = (low + high) // 2 = (0 + 4) // 2 = 2.
So sánh phần tử tại chỉ số mid với số cần tìm (12):Phần tử tại dãy_đã_sắp_xếp[mid] (tức dãy_đã_sắp_xếp[2]) là 7.
7 < 12, điều này có nghĩa là số 12 nằm ở nửa sau của dãy.
Cập nhật giá trị của low: low = mid + 1 = 2 + 1 = 3.
high vẫn giữ nguyên là 4.
Lần lặp 2:
Tính chỉ số mid: mid = (low + high) // 2 = (3 + 4) // 2 = 3.
So sánh phần tử tại chỉ số mid với số cần tìm (12):Phần tử tại dãy_đã_sắp_xếp[mid] (tức dãy_đã_sắp_xếp[3]) là 9.
9 < 12, điều này có nghĩa là số 12 nằm ở nửa sau của dãy (từ chỉ số 4 trở đi).
Cập nhật giá trị của low: low = mid + 1 = 3 + 1 = 4.
high vẫn giữ nguyên là 4.
Lần lặp 3:
Tính chỉ số mid: mid = (low + high) // 2 = (4 + 4) // 2 = 4.
So sánh phần tử tại chỉ số mid với số cần tìm (12):Phần tử tại dãy_đã_sắp_xếp[mid] (tức dãy_đã_sắp_xếp[4]) là 12.
12 == 12, chúng ta đã tìm thấy số 12.
Bước 4: Trả về vị trí
Vị trí của số 12 trong dãy đã sắp xếp là chỉ số mid, tức là 4.
Lưu ý quan trọng: Vị trí này là vị trí của số 12 trong dãy đã được sắp xếp. Nếu bạn muốn biết vị trí của số 12 trong dãy ban đầu [3, 5, 7, 12, 9], thì vị trí của nó là 3 (đếm từ 0). Tuy nhiên, thuật toán tìm kiếm nhị phân hoạt động trên dãy đã sắp xếp, và nó tìm ra vị trí của số 12 trong dãy đã sắp xếp là 4.
Quảng cáo
Bạn muốn hỏi bài tập?
Câu hỏi hot cùng chủ đề
-
32852
-
Hỏi từ APP VIETJACK25096
