Nhu cầu tìm kiếm dữ liệu Trong hầu hết các hệ lưu trữ, quản lý dữ liệu, thao tác tìm kiếm thường được thực hiện nhất để khai thác thông tin : Ví du: tra cứu từ điển, tìm sách trong thư viện. Do các hệ thống thông tin thường phải lưu trữ một khối lượng dữ liệu đáng kể. | Chương 5. TÌM KIẾM DỮ LIỆU . Nhu cầu tìm kiếm dữ liệu Trong hầu hết các hệ lưu trữ quản lý dữ liệu thao tác tìm kiếm thường được thực hiện nhất để khai thác thông tin Ví du tra cứu từ điển tìm sách trong thư viện. Do các hệ thống thông tin thường phải lưu trữ một khối lượng dữ liệu đáng kể nên việc xây dựng các giải thuật cho phép tìm kiếm nhanh sẽ có ý nghĩa rất lớn. Nếu dữ liệu trong hệ thống đã được tổ chức theo một trật tự nào đó thì việc tìm kiếm sẽ tiến hành nhanh chóng và hiệu quả hơn Ví dụ các từ trong từ điển được sắp xếp theo từng vần trong mỗi vần lại được sắp xếp theo trình tự alphabet sách trong thư viện được xếp theo chủ đề . Vì thế khi xây dựng một hệ quản lý thông tin trên máy tính bên cạnh các thuật toán tìm kiếm các thuật toán sắp xếp dữ liệu cũng là một trong những chủ đề được quan tâm hàng đầu. Hiện nay đã có nhiều giải thuật tìm kiếm và sắp xếp dược xây dựng mức độ hiệu quả của từng giải thuật còn phụ thuộc vào tính chất của cấu trúc dữ liệu cụ thể mà nó tác động đến. Dữ liệu được lưu trữ chủ yếu trong bộ nhớ chính và trên bộ nhớ phụ do đặc điểm khác nhau của thiết bị lưu trữ các thuật toán tìm kiếm và sắp xếp được xây dựng cho các cấu trúc lưu trữ trên bộ nhớ chính hoặc phụ cũng có những đặc thù khác nhau. Chương này sẽ trình bày các thuật toán sắp xếp và tìm kiếm dữ liệu được lưu trữ trên bộ nhớ chính - gọi là các giải thuật tìm kiếm và sắp xếp nội. Tập dữ liệu được lưu trữ là dãy số a1 a2 . aN. Giả sử chọn cấu trúc dữ liệu mảng để lưu trữ dãy số này trong bộ nhớ chính có khai báo int a N Lưu ý các bản cài đặt trong giáo trình sử dụng ngôn ngữ C do đó chỉ số của mảng mặc định bắt đầu từ 0 nên các giá trị của các chỉ số có chênh lệch so với thuật toán nhưng ý nghĩa không đổi Khoá cần tìm là x được khai báo như sau Int x . Các giải thuật tìm kiếm . Tìm kiếm tuần tự Giải thuật Tìm tuyến tính là một kỹ thuật tìm kiếm rất đơn giản và cổ điển. Thuật toán tiến hành so sánh x lần lượt với phần tử thứ nhất thứ hai . của mảng a cho đến khi .