BÀI TỐN TÌM KIẾM

Một phần của tài liệu Giáo trình Cấu trúc dữ liệu và giải thuật Công nghệ thông tin (Trang 25 - 26)

1 .GIỚI THIỆU

2. MỘT SỐ GIẢI THUẬT TÌM KIẾM

2.1 BÀI TỐN TÌM KIẾM

Tìm kiếm là quá trình tìm kiếm một phần tử (có thể chỉ là thuộc tính của phần tử) trong tập hợp các phần tử. Những phần tử này được lưu trong một cơ sở dữ liệu, những phần tử trong mảng, văn bản trong file, phần tử (node) trong cây, đỉnh và cạnh của đồ thị,...

Việc tìm kiếm các đối tượng chủ yếu dựa vào các khóa, do vậy thường thì bài tốn tìm kiếm được diễn ra trên bảng khóa.

Ví dụ: Tìm kiếm một số nguyên trong dãy các số ngun hoặc tìm kiếm đối tượng sinh

viên có các dữ liệu {maSV, hoTen, diaChi,…}. Khi đó tìm kiếm trên danh sách sinh viên thì khóa thường chọn là maSV hoặc hoTen.

Phân loại

Có rất nhiều cách tổ chức lưu trữ dữ liệu để cải thiện quá trình tìm kiếm. Vì vậy phụ thuộc vào tình trạng của dữ liệu mà chúng ta sẽ có những giải thuật tìm kiếm phù hợp và hiệu quả. Thông thường người ta phân làm hai loại tìm kiếm: tìm kiếm tuyến tính hay cịn gọi là tìm kiếm tuần tự; tìm kiếm nhị phân cho tập dữ liệu đã được sắp xếp.

Bài tốn tìm kiếm:

Input: Tập dữ liệu được lưu trữ là dãy phần tử a1, a2,..,an. Giả sử chọn cấu trúc dữ liệu mảng để lưu trữ dãy gồm n số trong bộ nhớ, có khai báo: int arrInt[n]; Khố cần tìm là key có kiểu ngun: int key.

Lưu ý: Nếu tập dữ liệu là dãy phần tử có dữ liệu phức tạp hơn, ví dụ như danh sách n sinh viên, khi đó mảng khai báo: SinhVien arr[n] và khóa cần tìm ví dụ là họ tên thì khai báo khóa như sau: string hoTen. Lúc này kiểu dữ liệu của khóa và kiểu dữ liệu của phần tử trong danh sách không trùng nhau mà chỉ trùng với một trường dữ liệu của phần tử đó mà thơi.

21

Output: Trả về vị trí tìm thấy key trong dãy (nếu tìm thấy). Nếu khơng tìm thấy thì trả về -1.

Một phần của tài liệu Giáo trình Cấu trúc dữ liệu và giải thuật Công nghệ thông tin (Trang 25 - 26)

Tải bản đầy đủ (PDF)

(151 trang)