19.1. Khi nào thì thuật toán tìm kiếm tuần tự trên một danh sách tốn nhiều thời gian nhất?
Hướng dẫn trả lời:
Thuật toán tìm kiếm tuần tự trên một danh sách tốn nhiều thời gian nhất là khi không tìm thấy phần tử cần tìm kiếm.
19.2. Có ý kiến cho rằng: Thiết kế các thuật toán tìm kiếm phụ thuộc rất nhiều vào cấu trúc dữ liệu của miền cần tìm kiếm. Điều đó đúng hay sai ?
Hướng dẫn trả lời:
Điều đó là đúng.
19.3. Cho ma trận số A bậc m x n. Viết chương trình thực hiện việc tìm kiếm tuần tự trên ma trận A. Giả sử K là giá trị cần tìm kiếm. Nếu tìm thấy sẽ trả về cặp chỉ số phần tử (i, j) có giá trị K, tức là A[i][j] = K, nếu không thấy sẽ trả về (-1,-1).
Hướng dẫn trả lời:
19,4. Em được giao nhiệm vụ tìm hiểu trong năm vừa qua ngày nào lạnh nhất. Hỏi miền dữ liệu tìm kiếm của bài toán này là gì?
Hướng dẫn trả lời:
Miền dữ liệu của bài toán là dãy số liệu nhiệt độ trung bình trong các ngày của năm qua.
19.5. Giả sử dữ liệu tên và điểm thi môn Tin học của các bạn lớp em được cho dưới dạng sau, ví dụ:
[(“Hà”, 7.5), (“Bình”, 8), (“Quang”, 9.2), (“An”, 10)]
Viết chương trình thực hiện các việc sau:
– Nhập một điểm số từ bàn phím. Sau đó tìm kiếm xem trong lớp có bạn nào có điểm thi bằng điểm đã nhập không. Nếu có thì chỉ cần thông báo một bạn, ví dụ: Tìm thấy bạn An.
– Nếu không thấy thì thông báo: Không tìm thấy.
Hướng dẫn trả lời:
19.6. Viết thuật toán và chương trình tìm kiếm tuần tự mở rộng như sau:
Cho trước dãy A và giá trị K. Cần tìm tất cả các phần tử trong A có giá trị bằng K. Kết quả trả về là một list chỉ số của các phần tử bằng K. Ngược lại, nếu không tìm thấy thì trả về list rỗng.
Ví dụ A: = [1,0,3,2,5,1,8], K = 1 thì kết quả trả về là list [0, 5]
Hướng dẫn trả lời:
19.7. Với thuật toán tìm kiếm nhị phân, khi nào thì tìm kiếm nhanh nhất, cần ít phép so sánh nhất?
Hướng dẫn trả lời:
Khi giá trị phần tử có chỉ số id bằng K, khi đó chỉ cần 1 phép so sánh
19.8. Với thuật toán toán tìm kiếm nhị phân, khi nào thì việc tìm kiếm sẽ chậm nhất, cần nhiều phép so sánh nhất?
Hướng dẫn trả lời:
Khi không tìm thấy giá trị K.
19.9. Viết chương trình cải tiến thuật toán tìm kiếm nhị phân trong sách giáo khoa (sách giáo khoa) để việc tìm kiếm nhanh hơn nếu K nằm ngoài vùng giá trị của dãy A.
Hướng dẫn trả lời:
19.10.* Em hãy giúp bạn Minh cách chơi tối ưu nhất cho trò chơi lật thẻ bài đã mô tả trong sách giáo khoa.
Hướng dẫn trả lời:
Minh cần lật các quân bài theo cách của phương pháp tìm kiếm nhị phân.