Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 8: Các thuật toán tìm kiếm

10 12 0
Bài giảng Cấu trúc dữ liệu và giải thuật – Bài 8: Các thuật toán tìm kiếm

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

Thông tin tài liệu

phương pháp tìm kiếm nhị phân, phương pháp này cũng chia danh sách thành các danh sách con và tìm ki ếm trên đó.  Phương pháp tìm kiếm nội suy nhanh hơn phương pháp[r]

(1)

Cấu trúc liệu giải thuật

Bài 8: Các thuật tốn tìm kiếm

(2)

Nội dung:

8.1 Khái niệm tìm kiếm (3)

8.2 Phương pháp tìm kiếm (7) 8.3 Phương pháp tìm kiếm nhị phân (8) 8.4 Phương pháp tìm kiếm nội suy (7)

Tham khảo:

1 Data structures and Algorithms Searching.htm

2 Kyle Loudon Mastering Algorithms, Chapter 12 Sorting and Searching Lecture 19 Sequential and Binary Search.htm

(3)

8.1 Khái niệm tìm kiếm (1/3)

 Trong thực tế, việc xác định vị trí phần tử danh sách ( xếp chưa xếp) có ý nghĩa quan trọng dùng nhiều ứng dụng

 Ví dụ 1: chương trình tra cứu từ điển, chương trình cần trả lời nghĩa từ

 Ví dụ 2: danh sách thí sinh, chương trình cần đưa tất thơng tin thí sinh thỏa mãn số tiêu chí

(4)

 Trong thực tế, với ý tưởng khác dẫn đến phương pháp tìm kiếm khác nhau.

 Phương pháp tìm kiếm thông dụng

thực tế tìm kiếm tuần tự Đây phương pháp

(5)

8.1 Khái niệm tìm kiếm (3/3)

Phương pháp tìm kiếm nhị phân: chia danh sách thành

các danh sách tìm kiếm Với liệu lớn, phương pháp cho tốc độ tìm kiếm tốt phương

pháp

Phương pháp tìm kiếm nội suy: giống

phương pháp tìm kiếm nhị phân, phương pháp chia danh sách thành danh sách tìm kiếm

 Phương pháp tìm kiếm nội suy nhanh phương pháp

(6)

 Đây phương pháp tìm kiếm đơn giản nhất.  Ý tưởng chung tìm kiếm tuần tự:

 Sử dụng vòng lặp để duyệt danh sách, xuất phát từ phần tử danh sách

(7)

8.1 Tìm kiếm (2/7)

Sub LinearSearch(x:int, a[]: Int, loc: Int) i:=1

While (i<=n) And (x<>a[i]) i:=i+1

End While

If i<=n Then loc = i Else loc = 0 End Sub

(8)

 Giả sử cho danh sách số nguyên gồm:

 Ví dụ: tìm vị trí phần tử có giá trị 11, việc tìm kiếm phần tử có giá trị 17, đến 23, đến 5, đến 11: đưa thơng báo tìm thấy, trả vị trí thứ danh sách.

 Ví dụ: tìm vị trí phần tử có giá trị 7, việc tìm kiếm phần tử có giá trị 17, qua danh sách,

ấy, trả thông tin: ấy

(9)

8.1 Tìm kiếm (4/7)

Một số ưu điểm thuật tốn tìm kiếm tuần tự:

 Rất đơn giản để nắm bắt

 Đơn giản việc thực

 Danh sách ban đầu không cần thiết phải theo

một thứ tự

Nhược điểm phương pháp tìm kiếm tuần tự:

 Hiệu phương pháp

(10)

Use a Sentinel to Improve the Performance

Sub LinearSearch2(x:int, a[]: Int, loc: Int) a[n+1] = x: n = n + 1: i = 1

While (x<>a[i])

i = i+1 End While

Ngày đăng: 09/03/2021, 08:28

Tài liệu cùng người dùng

Tài liệu liên quan