Slide 1 các chiến lược tìm kiếm Giảng viên Văn Chí Nam – Nguyễn Thị Hồng Nhung – Đặng Nguyễn Đức Tiến Cấu trúc dữ liệu và giải thuật 1 Nội dung trình bày 2 Cấu trúc dữ liệu và giải thuật – HCMUS 2011[.]
Cấu trúc liệu giải thuật CÁC CHIẾN LƯỢC TÌM KIẾM Giảng viên: Văn Chí Nam – Nguyễn Thị Hồng Nhung – Đặng Nguyễn Đức Tiến Nội dung trình bày Giới thiệu Tìm kiếm Tìm kiếm nhị phân Tìm kiếm theo bảng băm Tổng kết Cấu trúc liệu giải thuật – HCMUS 2011 Giới thiệu Thao tác tìm kiếm phổ biến sống hàng ngày Tìm kiếm hồ sơ, tập tin Tìm kiếm tên người danh sách … Cấu trúc liệu giải thuật – HCMUS 2011 Thuật tốn tìm kiếm Có nhiều loại: Tìm kiếm (Sequential/ Linear Search) Tìm kiếm nhị phân (Binary Search) … Mục tiêu: Tìm hiểu thuật tốn tìm kiếm Phân tích thuật tốn để lựa chọn thuật toán phù hợp áp dụng vào thực tế Cấu trúc liệu giải thuật – HCMUS 2011 Tìm kiếm Sequential Search Linear Search Cấu trúc liệu giải thuật – HCMUS 2011 Thuật tốn tìm kiếm Input: Output: Dãy A, n phần tử Giá trị x cần tìm Nếu x xuất A: trả vị trí xuất x Nếu khơng: trả n -1 Thuật tốn: Vét cạn (exhaustive) Dùng lính canh (sentinel) Cấu trúc liệu giải thuật – HCMUS 2011 Tìm kiếm - Vét cạn Thuật toán: Lần lượt so sánh x với phần tử mảng A gặp phần tử cần tìm, hết mảng Ví dụ: A = {1, 25, 6, 5, 2, 37, 40}, x = x = 25 37 40 37 40 37 40 x = 25 x = 25 Cấu trúc liệu giải thuật – HCMUS 2011 Dừng Tìm kiếm - Vét cạn Thuật tốn: LinearExhaustive • Bước Khởi tạo biến số: i = • Bước Kiểm tra xem có thực hết mảng hay chưa: So sánh i n • • • Nếu chưa hết mảng (i < n), sang bước Nếu hết mảng (i >= n), thơng báo khơng tìm thấy giá trị x cần tìm Bước So sánh giá trị a[i] với giá trị x cần tìm • • Nếu a[i] x: Kết thúc chương trình thơng báo tìm thấy x Nếu a[i] khác x, tăng i thêm quay lại bước Cấu trúc liệu giải thuật – HCMUS 2011 Tìm kiếm - Vét cạn Nhận xét: Phép so sánh phép toán sơ cấp dùng thuật toán Suy ra, số lượng phép so sánh thước đo độ phức tạp thuật tốn Mỗi vịng lặp có điều kiện cần kiểm tra: Kiểm tra cuối mảng (bước 2) Kiểm tra phần tử có x? (bước 3) Cấu trúc liệu giải thuật – HCMUS 2011 Tìm kiếm - Vét cạn 10 Trường hợp x nằm biên mảng A: xuất Ước lượng số vịng lặp trung bình hữu ích 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 liệu giải thuật – HCMUS 2011