Professional Documents
Culture Documents
Nhóm 1 IT003.N212
Nhóm 1 IT003.N212
01 03
Nhu cầu tìm kiếm, sắp xếp dữ liệu Các giải thuật tìm kiếm
trong một hệ thống thông tin
02 04
Định nghĩa bài toán tìm kiếm Bài tập
01
NHU CẦU TÌM KIẾM, SẮP XẾP DỮ LIỆU TRONG
MỘT HỆ THỐNG THÔNG TIN
CÓ THỂ BẠN ĐÃ BIẾT
• Thông thường, khi cần khai thác thông tin trong hệ
quản lý dữ liệu, thao tác tìm kiếm thường được thực
hiện nhiều nhất.
• Việc tìm kiếm nhanh hay chậm, tùy thuộc vào trật tự
của dữ liệu trên đó.
#loremipsum #loremipsum
Output
4
Input
5 32
12 43 23 34 32
TÌM KIẾM TUYẾN TÍNH
i 0 1 2 3 4
a 12 43 23 34 32
Với x=32
TÌM KIẾM TUYẾN TÍNH
i 0 1 2 3 4
a 12 43 23 34 32
a 12 43 23 34 32
a 12 43 23 34 32
a 12 43 23 34 32
a 12 43 23 34 32
int main(){
int n,a[100],x;
cin>>n>>x;
for(int i=0; i<n; i++){
cin>>a[i];
}
}
TÌM KIẾM NHỊ PHÂN
Output
3
Input
5 32
12 23 25 32 43
TÌM KIẾM NHỊ PHÂN
i 0 1 2 3 4
a 12 23 25 32 43
Với x=32
TÌM KIẾM NHỊ PHÂN
L R
i 0 1 2 3 4
a 12 23 25 32 43
TÌM KIẾM NHỊ PHÂN
L M R
i 0 1 2 3 4
a 12 23 25 32 43
M = (0+4)/2 = 2
TÌM KIẾM NHỊ PHÂN
L R
i 0 1 2 3 4
a 12 23 25 32 43
TÌM KIẾM NHỊ PHÂN
M
i 0 1 2 3 4
a 12 23 25 32 43
M = (3+4)/2 = 3
CODE MẪU
int m;
while(l <= r) {
m = (l + r) / 2;
if (a[m] == x)
return m;
if (x > a[m])
l = m + 1;
else
r = m - 1;
}
return -1;
}
CODE MẪU
int main() {
int n,a[100],x;
cin>>n>>x;
for(int i=0; i<n; i++){
cin>>a[i];
}
cout << binarySearch(a, 0, n-1, x);
}
NGUỒN THAM KHẢO
CÁC GIẢI THUẬT TÌM KIẾM:
HÌNH ẢNH: