Câu 2:
a. Ý tưởng thuật toán tìm kiếm tuần tự là duyệt từng phần tử của dãy để tìm phần tử cần tìm. Bắt đầu từ phần tử đầu tiên, so sánh với phần tử cần tìm. Nếu bằng thì trả về vị trí của phần tử đó, nếu khác thì tiếp tục so sánh với các phần tử tiếp theo cho đến khi tìm thấy hoặc duyệt hết dãy.
b. Khi thuật toán kết thúc, có thể xảy ra hai trường hợp: tìm thấy phần tử cần tìm hoặc không tìm thấy.
c.
1) Để tìm x = 39:
Bước 1: So sánh 11 với 39. Không bằng, tiếp tục.
Bước 2: So sánh 70 với 39. Không bằng, tiếp tục.
Bước 3: So sánh 18 với 39. Không bằng, tiếp tục.
Bước 4: So sánh 39 với 39. Bằng, trả về vị trí của phần tử là 4.
2) Để tìm x = 60:
Bước 1: So sánh 11 với 60. Không bằng, tiếp tục.
Bước 2: So sánh 70 với 60. Không bằng, tiếp tục.
Bước 3: So sánh 18 với 60. Không bằng, tiếp tục.
Bước 4: So sánh 39 với 60. Không bằng, tiếp tục.
Bước 5: So sánh 63 với 60. Không bằng, tiếp tục.
Bước 6: So sánh 52 với 60. Không bằng, tiếp tục.
Bước 7: So sánh 41 với 60. Không bằng, tiếp tục.
Bước 8: So sánh 5 với 60. Không bằng, kết thúc thuật toán và trả về không tìm thấy.
Câu 3:
a. Ý tưởng của thuật toán tìm kiếm nhị phân là tìm kiếm trong một dãy đã được sắp xếp. So sánh phần tử ở giữa của dãy với phần tử cần tìm. Nếu bằng thì kết thúc thuật toán, nếu lớn hơn thì tiếp tục tìm kiếm ở nửa đầu của dãy, nếu nhỏ hơn thì tìm kiếm ở nửa sau của dãy. Tiến hành lặp lại quá trình này cho đến khi tìm thấy hoặc không tìm thấy phần tử cần tìm.
b. Không phải với bất cứ dãy số nào cũng có thể áp dụng được thuật toán tìm kiếm nhị phân. Thuật toán chỉ hoạt động với các dãy đã được sắp xếp.
c. Để tìm kiếm x = 57:
Bước 1: So sánh phần tử giữa của dãy (46) với 57. Nhỏ hơn, tiếp tục.
Bước 2: So sánh phần tử giữa của nửa sau của dãy (69) với 57. Lớn hơn, tiếp tục.
Bước 3: So sánh phần tử giữa của nửa trước của nửa sau dãy (58) với 57. Nhỏ hơn, tiếp tục.
Bước 4: So sánh phần tử giữa của nửa sau của nửa sau dãy (69) với 57. Lớn hơn, tiếp tục.
Bước 5: So sánh phần tử giữa của nửa trước của nửa sau của nửa sau dãy (58) với 57. Nhỏ hơn, tiếp tục.
Bước 6: So sánh phần tử giữa của nửa sau của nửa sau của nửa sau dãy (69) với 57. Lớn hơn, tiếp tục.
Bước 7: So sánh phần tử giữa của nửa trước của nửa sau của nửa sau dãy (58) với 57. Nhỏ hơn, tiếp tục.
Bước 8: So sánh phần tử giữa của nửa sau của nửa sau của nửa sau dãy (69) với 57. Lớn hơn, tiếp tục.
Bước 9: So sánh phần tử giữa của nửa trước của nửa sau của nửa sau dãy (58) với 57. Nhỏ hơn, không còn nửa trước để tìm kiếm, kết thúc thuật toán và trả về không tìm thấy.