TS. Lê Minh Trung
ThS Lương Trần Ngọc Khiết
Khoa CNTT, Đại học phạm, TP. HCM
Nội dung
Giới thiệu bài toán tìm kiếm
Tìm kiếm tuần tự
Tìm kiếm nhị phân
Khái niệm m kiếm
Cho biết:
Một danh sách các bản ghi (record).
Một khóa cần tìm.
Tìm bản ghi khóa trùng với khóa cần tìm (nếu ).
Đo độ hiệu quả:
Số lần so sánh khóa cần tìm khóa của các bản ghi
Phân loại:
Tìm kiếm nội (internal searching)
Tìm kiếm ngoại (external searching)
Tìm kiếm tuần tự
Input: mảng đầu vào int a[n], khóa cần tìm key
Output: vị trí tìm thấy đầu tiên của key trong mảng
hoặc -1 nếu không tìm thấy
int SequentialSearch(int a[n], int key)
{
for(int i=0; i<n; i++)if(a[i]==key)break;
if(i<n)return i;
return -1;
}
Tìm tuần tự (sequential search)
5
Target key
713 521 6 2 8 15
0 1 2 3 4 5 6 7
position = 2
return success
Số lần so sánh: 3