Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2 - Trần Minh Thái (Trường Đại học Hồng Bàng )

Bài giảng "Cấu trúc dữ liệu và giải thuật - Chương 2: Giải thuật tìm kiếm" cung cấp cho người học các kiến thức: Nhu cầu tìm kiếm, sắp xếp dữ liệu trong một hệ thống thông tin, các giải thuật tìm kiếm nội, tìm kiếm tuyến tính, tìm kiếm nhị phân,. . | Chương . Giải thuật tìm kiếm Trần Minh Thái Email: minhthai@ Website: 1 Mục tiêu Xác định được vai trò của tìm kiếm và sắp xếp trong hệ thống thông tin Nắm vững và minh họa được giải thuật tìm tuần tự và tìm kiếm nhị phân trên mảng một chiều Cài đặt được giải thuật tìm kiếm bằng ngôn ngữ C/C++ 2 Nhu cầu tìm kiếm và sắp xếp Tìm kiếm: Có trong hầu hết trong các hệ thống thông tin Muốn tìm kiếm nhanh và hiệu quả dữ liệu có thứ tự sắp xếp 3 Vấn đề tìm kiếm Dựa vào một phần thông tin được gọi là khoá (key) tìm một mẫu tin (record) chứa các thông tin khác liên quan với khoá này Có thể có nhiều mẫu tin hoặc không có mẫu tin nào chứa khoá cần tìm 4 Đánh giá giải thuật tìm kiếm Tìm kiếm thường là tác vụ tốn nhiều thời gian trong một chương trình Tổ chức cấu trúc dữ liệu và giải thuật cho việc tìm kiếm ảnh hưởng lớn đến hiệu suất hoạt động của chương trình Thông số đo chủ yếu là số lần so sánh khoá cần tìm với các mẫu tin khác 5 Phân loại Tìm kiếm nội và tìm kiếm ngoại Dữ liệu lưu trên thiết bị lưu trữ ngoài như đĩa hay băng từ: tìm kiếm ngoại Dữ liệu được lưu trữ trên bộ nhớ chính: tìm kiếm nội 6 Các giải thuật tìm kiếm Có 2 giải thuật thường được áp dụng: tìm tuần tự và tìm nhị phân Đặc tả: Tập dữ liệu được lưu trữ là dãy số a1, a2, . ,aN. Khai báo: int a[N]; Khóa cần tìm: int x; 7 a1 a2 a3 a4 a5 an-1 aN Tìm tuần tự (Linear Search) Ý tưởng Lần lượt so sánh x với phần tử thứ nhất, thứ hai, . của mảng a cho đến khi gặp được phần tử cần tìm, hoặc hết mảng 8 Tìm tuần tự Minh họa tìm x =10 Minh họa tìm x =25 9 Chưa hết mảng 7 5 12 41 10 32 13 9 15 3 1 2 3 4 5 6 7 8 9 10 7 5 12 41 10 32 13 9 15 3 1 2 3 4 5 6 7 8 9 10 10 10 25 Chưa hết mảng Đã tìm thấy tại vị trí 5 Đã hết mảng Giải thuật Bước 1: i = 1; // bắt đầu từ phần tử đầu tiên của dãy Bước 2: So sánh a[i] với x, có 2 khả năng : a[i] = x : Tìm thấy. Dừng a[i] != x : Sang Bước 3. Bước 3: i = i+1; // xét tiếp phần tử kế trong mảng Nếu i >N: Hết mảng, không tìm . | Chương . Giải thuật tìm kiếm Trần Minh Thái Email: minhthai@ Website: 1 Mục tiêu Xác định được vai trò của tìm kiếm và sắp xếp trong hệ thống thông tin Nắm vững và minh họa được giải thuật tìm tuần tự và tìm kiếm nhị phân trên mảng một chiều Cài đặt được giải thuật tìm kiếm bằng ngôn ngữ C/C++ 2 Nhu cầu tìm kiếm và sắp xếp Tìm kiếm: Có trong hầu hết trong các hệ thống thông tin Muốn tìm kiếm nhanh và hiệu quả dữ liệu có thứ tự sắp xếp 3 Vấn đề tìm kiếm Dựa vào một phần thông tin được gọi là khoá (key) tìm một mẫu tin (record) chứa các thông tin khác liên quan với khoá này Có thể có nhiều mẫu tin hoặc không có mẫu tin nào chứa khoá cần tìm 4 Đánh giá giải thuật tìm kiếm Tìm kiếm thường là tác vụ tốn nhiều thời gian trong một chương trình Tổ chức cấu trúc dữ liệu và giải thuật cho việc tìm kiếm ảnh hưởng lớn đến hiệu suất hoạt động của chương trình Thông số đo chủ yếu là số lần so sánh khoá cần tìm với các mẫu tin khác 5 Phân loại Tìm kiếm nội .

Không thể tạo bản xem trước, hãy bấm tải xuống
TÀI LIỆU MỚI ĐĂNG
Đã phát hiện trình chặn quảng cáo AdBlock
Trang web này phụ thuộc vào doanh thu từ số lần hiển thị quảng cáo để tồn tại. Vui lòng tắt trình chặn quảng cáo của bạn hoặc tạm dừng tính năng chặn quảng cáo cho trang web này.