Bài giảng Cấu trúc dữ liệu và giải thuật: Các chiến lược tìm kiếm - ĐH KHTN TPHCM
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Bài giảng Cấu trúc dữ liệu và giải thuật: Các chiến lược tìm kiếm - ĐH KHTN TPHCMGiảng viên:Văn Chí Nam – Nguyễn Thị Hồng Nhung – Đặng Nguyễn Đức Tiến2Giới thiệuTìm kiếm tuần tựTìm kiếm nhị phânTìm kiếm theo bảng bămTổng kếtCấu trúc dữ liệu và giải thuật – HCMUS 2011© FIT-HCMUS 201113Thao tác tìm kiếm rất phổ biến trong cuộc sốnghàng ngày. Tìmkiếm hồ sơ, tập tin. Tìm kiếm tên người trong danh sách.…Cấu trúc dữ liệu và giải thuật – HCMUS 20114Có nhiều loại: Tìmkiếm tuần tự (Sequential/ Linear Search) Tìm kiếm nhị phân (Binary Search) …Mục tiêu: Tìmhiểu về 2 thuật toán tìm kiếm cơ bản. Phân tích thuật toán để lựa chọn thuật toán phù hợp khiáp dụng vào thực tế.Cấu trúc dữ liệu và giải thuật – HCMUS 2011© FIT-HCMUS 201125Sequential SearchLinear SearchCấu trúc dữ liệu và giải thuật – HCMUS 20116Input: Dãy A,n phần tử Giá trị x cần tìmOutput: Nếux xuất hiện trong A: trả về vị trí xuất hiện đầu tiêncủa x Nếu không: trả về n hoặc -1Thuật toán: Vétcạn (exhaustive) Dùng lính canh (sentinel)Cấu trúc dữ liệu và giải thuật – HCMUS 2011© FIT-HCMUS 201137Thuật toán: Lầnlượt so sánh x với các phần tử của mảng A cho đếnkhi gặp được phần tử cần tìm, hoặc hết mảng. Ví dụ: A = {1, 25, 6, 5, 2, 37, 40}, x = 6x = 612565237406523740523740x = 6125x = 61256Dừng8Thuật toán: LinearExhaustive• Bước 1. Khởi tạo biến chỉ số: i = 0• Bước 2. Kiểm tra xem có thực hiện hết mảng haychưa: So sánh i và n•••Nếu chưa hết mảng (i < n), sang bước 3.Nếu đã hết mảng (i >= n), thông báo không tìm thấygiá trị x cần tìm.Bước 3. So sánh giá trị a[i] với giá trị x cần tìm••Nếu a[i] bằng x: Kết thúc chương trình và thông báođã tìm thấy x.Nếu a[i] khác x, tăng i thêm 1 và quay lại bước 2.Cấu trúc dữ liệu và giải thuật – HCMUS 2011© FIT-HCMUS 201149Nhận xét: Phép so sánh là phép toán sơ cấpđược dùng trong thuật toán. Suy ra, số lượngcác phép so sánh sẽ là thước đo độ phức tạpcủa thuật toán.Mỗi vòng lặp có 2 điều kiện cần kiểm tra: Kiểmtra cuối mảng (bước 2) Kiểm tra phần tử hiện tại có bằng x? (bước 3)Cấu trúc dữ liệu và giải thuật – HCMUS 201110Trường hợp x nằm ở 2 biên của mảng A: rấthiếm khi xuất hiện. Ước lượng số vòng lặp trung bình sẽ hữu íchhơn. Số phép so sánh trung bình:2(1+2+ … + n)/n = n+1=> Số phép so sánh tăng/giảm tuyến tính theo sốphần tửCấu trúc dữ liệu và giải thuật – HCMUS 2011© FIT-HCMUS 20115
Tìm kiếm theo từ khóa liên quan:
Cấu trúc dữ liệu Bài giảng Cấu trúc dữ liệu Chiến lược tìm kiếm Tìm kiếm tuần tự Tìm kiếm nhị phân Thuật toán tìm kiếm nhị phânGợi ý tài liệu liên quan:
-
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 318 0 0 -
Giáo trình Lập trình cơ bản với C++ - Phan 2
69 trang 199 0 0 -
Giải thuật và cấu trúc dữ liệu
305 trang 163 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 1 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
64 trang 150 0 0 -
Tập bài giảng Thực hành kỹ thuật lập trình
303 trang 143 0 0 -
Giáo trình Cấu trúc dữ liệu và thuật toán (Tái bản): Phần 1
152 trang 139 0 0 -
51 trang 133 0 0
-
Tài liệu tham khảo: Cấu trúc dữ liệu và giải thuật
229 trang 124 0 0 -
Bài giảng Cấu trúc dữ liệu và thuật toán: Chương 3 - Một số mô hình thuật toán
42 trang 74 0 0 -
Lập trình C - Cấu trúc dữ Liệu
307 trang 74 0 0 -
Ứng dụng và cài đặt cấu trúc dữ liệu bằng C: Phần 1
338 trang 73 0 0 -
49 trang 72 0 0
-
Bài giảng Cơ sở dữ liệu: Chương 3 - ThS. Hoàng Mạnh Hà
67 trang 70 0 0 -
54 trang 70 0 0
-
Bài giảng Cấu trúc dữ liệu và giải thuật: Phần 1 - ThS. Hoàng Thế Phương
128 trang 67 0 0 -
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Ngô Công Thắng
8 trang 66 0 0 -
Giáo trình Cấu trúc dữ liệu và giải thuật: Phần 2 - Lê Văn Vinh
67 trang 57 1 0 -
Giáo trình CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT - Chương 1
5 trang 51 0 0 -
Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 5 - ThS. Trịnh Quốc Sơn (ĐH Công nghệ Thông tin)
20 trang 50 0 0 -
Bài giảng Thuật toán ứng dụng: Chia để trị
31 trang 49 0 0