Tìm kiếm (searching)
Lê SVinh
Bmôn Khoa Hc Máy Tính Khoa CNTT
Đại Hc Công Ngh-ĐHQGHN
Email: vinhbio@gmail.com
Các vn đề
Tìm kiếm trên danh sách:
Có mt danh sách các đối tượng A, tìm xem mt đối tượng Xcó thuc
vào danh sách này hay không
Ví d:
Tìm mt sinh viên
mt s đin thoi
Tìm 1 t trong t đin
Tìm 1 loi hàng hóa
Các vn đề
Tìm kiếm trên văn bn (text matching):
Tim kiếm s xut hin ca mt đon văn bn (1 t, 1 câu, 1 đon…)
trong mt văn bn ln. Đon văn bn có th xut hin chính xác hoc
gn chính xác trong văn bn ln.
Ví d
Ví d
Search and replace in editors
Search engine (yahoo, google…)
Tìm kiếm trên danh sách
Input:
Danh sách các đối tượng A= (a0,…,an)
Đối tượng cn tìm X
Output:
i: v trí xut hin ca tượng X trong A (i = -1 nếu Xkhông xut hin)
Thut toán: Duyt ln lượt trên danh sách A và so sánh xem Xcó trong danh sách
hay không. Nêu có tr li v trí xut hin đầu tiên, nếu không tr li (-1)
Độ phc tp: O(n)
Tìm kiếm trên danh sách đã được sp xếp
Input:
Danh sách các đối tượng đãđưc sp xếpA= (a0,…,an) | ai ai+1
Đối tượng cn tìm X
Output:
i
:
v
trí
xut
hin
ca
X
trong
A (
i
=
-
1
nếu
X
không
xut
hin
)
i
:
v
trí
xut
hin
ca
X
trong
A (
i
=
-
1
nếu
X
không
xut
hin
)
Tìm kiếm nhphân: So sánh X vi phn t gia danh sách , nếu
1. Nếu bng X nm vtrí gia danh sách
2. Nếu nhhơn, Tìm kiếm X trên nađầu ca danh sách
3. Nếu ln hơn, Tìm kiếm X trên na cui ca danh sách
Độ phc tp: O (log n)