Upload
duynguyen
View
220
Download
5
Embed Size (px)
DESCRIPTION
Tìm kiếm
Citation preview
Chng 4: TM KIM
(SEARCHING)
Chng 3: Tm kim
Ni dung
Khi qut v tm kim
Tm tuyn tnh (Linear Search)
Tm nh phn (Binary Search)
*
Chng 3: Tm kim
Khi qut v tm kim
Tm kim l mt yu cu rt thng xuyn trong i sng hng ngy cng nh trong tin hcV d:Tm kim mt sinh vin trong lpTm kim mt tp tin, th mc trong my n gin ta xt bi ton tm kim nh sau:Cho mt dy s gm cc phn t a1, a2, ..., an. Cho bit trong dy ny c phn t no c gi tr bng X (cho trc) hay khng?*
Chng 3: Tm kim
Chng 3: Tm kim
Khi qut v tm kim
Xt hai cch tm kim:Tm kim tuyn tnh (Linear Search) hay cn gi l tm kim tun t (Sequential Search)Tm kim nh phn (Binary Search)*
Chng 3: Tm kim
Ni dung
Khi qut v tm kim
Tm tuyn tnh (Linear Search)
Tm nh phn (Binary Search)
*
Chng 3: Tm kim
2. Tm tuyn tnh (Linear Seach)
tng:
Bt u t phn t u tin ca danh sch, so snh ln lt tng phn t ca danh sch vi gi tr X cn tm
Nu c phn t bng X, thut ton dng li (thnh cng)
Nu n cui danh sch m khng c phn t no bng X, thut ton dng li (khng thnh cng)
If we find a match, the search terminates successfully by returning the index of the elementIf the end of the list is encountered without a match, the search terminates unsuccessfully*
Chng 3: Tm kim
2. Tm tuyn tnh (Linear Seach)
Thut ton:
B1: i = 0 ;// bt u t phn t u tin
B2: so snh A[i] vi X, c 2 kh nng :
A[i] = X : Tm thy. Dng A[i] X : Sang B3B3: i=i+1 // Xt phn t tip theo trong mng
Nu i=n : Ht mng, khng tm thy. Dng
Ngc li: lp li B2
*
Chng 3: Tm kim
2. Tm tuyn tnh (Linear Seach)
*
X=8
V d:
i=0
i=1
i=2
Dng
12
2
8
5
1
12
2
8
5
1
X=8
12
2
8
5
1
X=8
12
2
8
5
1
X=8
Chng 3: Tm kim
2. Tm tuyn tnh (Linear Seach)
*
5
Kha tm
7
13
5
21
6
2
8
15
V tr = 2
Tm thnh cng
S ln so snh: 3
0
1
2
3
4
5
6
7
Chng 3: Tm kim
*
9
7
13
5
21
6
2
8
15
Khng tm thy
S ln so snh: 8
Kha tm
2. Tm tuyn tnh (Linear Seach)
0
1
2
3
4
5
6
7
Chng 3: Tm kim
2. Tm tuyn tnh (Linear Seach)
void lsearch (int list[], int n, int key) {
int flag = 0;// gi s lc u cha tm thy
for(int i=0; i