Tìm kiếm thường là công việc nhanh hơn sắp xếp nhưng lại được sử dụng nhiều hơn. Trên đây, ta đã trình bày phép tìm kiếm trong một tập hợp để tìm ra bản ghi mang khoá đúng bằng khoá tìm kiếm. Tuy nhiên, người ta có thể yêu cầu tìm bản ghi mang khoá lớn hơn hay nhỏ hơn khoá tìm kiếm, tìm bản ghi mang khoá nhỏ nhất mà lớn hơn khoá tìm kiếm, tìm bản ghi mang khoá lớn nhất mà nhỏ hơn khoá tìm kiếm Để cài đặt những thuật toán nêu trên cho những. | Cấu trúc dữ liệu và Giải thuật 131 . NHỮNG NHẬN XÉT CUỐI CÙNG Tìm kiếm thường là công việc nhanh hơn sắp xếp nhưng lại được sử dụng nhiều hơn. Trên đây ta đã trình bày phép tìm kiếm trong một tập hợp để tìm ra bản ghi mang khoá đúng bằng khoá tìm kiếm. Tuy nhiên người ta có thể yêu cầu tìm bản ghi mang khoá lớn hơn hay nhỏ hơn khoá tìm kiếm tìm bản ghi mang khoá nhỏ nhất mà lớn hơn khoá tìm kiếm tìm bản ghi mang khoá lớn nhất mà nhỏ hơn khoá tìm kiếm . Để cài đặt những thuật toán nêu trên cho những trường hợp này cần có một sự mềm dẻo nhất định. Cũng tương tự như sắp xếp ta không nên đánh giá giải thuật tìm kiếm này tốt hơn giải thuật tìm kiếm khác. Sử dụng thuật toán tìm kiếm phù hợp với từng yêu cầu cụ thể là kỹ năng của người lập trình việc cài đặt cây nhị phân tìm kiếm hay cây tìm kiếm cơ số chỉ để tìm kiếm trên vài chục bản ghi chỉ khẳng định được một điều rõ ràng không biết thế nào là giải thuật và lập trình. Bài tập Bài 1 Hãy thử viết một chương trình SearchDemo tương tự như chương trình SortDemo trong bài trước. Đồng thời viết thêm vào chương trình SortDemo ở bài trước thủ tục TreeSort và đánh giá tốc độ thực của nó. Bài 2 Tìm hiểu các phương pháp tìm kiếm ngoài cấu trúc của các B_cây Bài 3 Tìm hiểu các phương pháp tìm kiếm chuỗi thuật toán BRUTE-FORCE thuật toán KNUTH-MORRIS-PRATT thuật toán BOYER-MOORE và thuật toán RABIN-KARP Tuy gọi là chuyên đề về Cấu trúc dữ liệu và giải thuật nhưng thực ra ta mới chỉ tìm hiểu qua về hai dạng cấu trúc dữ liệu hay gặp là danh sách và cây cùng với một số thuật toán mà đâu cũng phải có là tìm kiếm và sắp xếp. Không một tài liệu nào có thể đề cập tới mọi cấu trúc dữ liệu và giải thuật bởi chúng quá phong phú và liên tục được bổ sung. Những cấu trúc dữ liệu và giải thuật không phổ thông lắm như lý thuyết đồ thị hình học . sẽ được tách ra và sẽ được nói kỹ hơn trong một chuyên đề khác. Việc đi sâu nghiên cứu những cấu trúc dữ liệu và giải thuật dù chỉ là một phần nhỏ hẹp cũng nảy sinh rất nhiều vấn đề hay và khó .