1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Cấu trúc dữ liệu và giải thuật: Chương 2.1 - Trần Minh Thái (2016)

26 10 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 94,39 KB

Nội dung

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 các kiến thức giúp người học có thể: 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 kiếm tuyến tính 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#.

Chương 2.1 Giải thuật tìm kiếm Trần Minh Thái Email: minhthai@huflit.edu.vn Website: www.minhthai.edu.vn Mục tiêu Xác định vai trị tìm kiếm xếp hệ thống thông tin Nắm vững minh họa giải thuật tìm kiếm tuyến tính tìm kiếm nhị phân mảng chiều Cài đặt giải thuật tìm kiếm ngơn ngữ C# Nhu cầu tìm kiếm xếp Tìm kiếm: Có hầu hết hệ thống thơng tin Muốn tìm kiếm nhanh hiệu  liệu có thứ tự  xếp Vấn đề tìm kiếm Dựa vào phần thơng tin gọi khố (key)  tìm mẫu tin (record) chứa thông tin khác liên quan với khố Có thể có nhiều mẫu tin khơng có mẫu tin chứa khố cần tìm Đánh giá giải thuật tìm kiếm Tìm kiếm thường tác vụ tốn nhiều thời gian chương trình Tổ chức cấu trúc liệu giải thuật cho việc tìm kiếm ảnh hưởng lớn đến hiệu suất hoạt động chương trình Thơng số đo chủ yếu số lần so sánh khố cần tìm với mẫu tin khác Phân loại Tìm kiếm nội tìm kiếm ngoại Dữ liệu lưu thiết bị lưu trữ đĩa hay băng từ: tìm kiếm ngoại Dữ liệu lưu trữ nhớ chính: tìm kiếm nội Các giải thuật tìm kiếm dãy Có giải thuật thường áp dụng: Tìm tìm nhị phân Đặc tả:  Tập liệu lưu trữ dãy số a1, a2, ,aN a a4 int[N]; a5 … inta[]a Khai abáo: = new  Khóa cần tìm: int x; an-1 aN Tìm kiếm (Linear Search) Ý tưởng Lần lượt so sánh x với phần tử thứ nhất, thứ hai, mảng a gặp phần tử cần tìm, hết mảng Tìm kiếm Minh họa tìm x =10 10 Đã tìm thấy Chưa hếttại 12 41 10 10 32 13 15 3 10 Minh họa tìm x =25 25 vịmảng trí Chưa hết mảng Đã hết mảng 12 41 10 32 13 15 3 10 Giải thuật Bước 1:   i = 1;         // phần tử dãy Bước 2: So sánh a[i] với x, có khả năng: a[i] = x : Tìm thấy Dừng a[i] != x :  Sang Bước Bước 3:  i = i+1;      // xét tiếp phần tử kế mảng  Nếu i >N: Hết mảng, khơng tìm thấy Dừng Ngược lại: Lặp lại Bước 10 Cài đặt int LinearSearch(int []a, int N, int x) { int i=0; while ((i r: Kết thúc: Khơng tìm thấy m m 20 Giải thuật Bước 1: left = 1; right = N; //tìm kiếm tất phần tử Bước 2: mid = (left+right)/2; // lấy mốc so sánh So sánh a[mid] với x, có khả :   a[mid] = x: Tìm thấy Dừng a[mid] > x: //tìm tiếp x dãy aleft amid -1 right =mid - 1;  a[mid] < x: //tìm tiếp x dãy amid +1 aright left = mid + 1; Bước 3: Nếu left

Ngày đăng: 09/05/2021, 18:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN