



Preview text:
Các toán tìm thuật kiếm 1, Tìm kiếm tuần tự
-Duyệt mảng (dãy số) để tìm For i:=1 to N do If a[i]=X then ; Break;exit; 2, Tìm kiếm nhị phân
Function TKNP(X, L, R:longint);boolean; Var giua:longint; Begin While LBegin Giua:=(L+R) div 2; If a[giua]=X then exit(true);
If a[giua]>X then R:=giua-1; Else L:=giua+1; End; Exit(false); End;
3, Tìm vị trí của X xa nhất về bên phải
Function TKNP2(X,L,R:longint);longint; Var giua:longint; Find:boolean; Begin Find:=false; While LBegin Giua:=(L+R) div 2; If a[giua]>=X then Begin If X=a[giua] then Begin find:=true; TKNP2:=giua; L:=giua+1; End Else R:=giua-1; End; If find=false then Exit(0); End;
4, Tìm vị trí của X xa nhất về bên trái
Function TKNP3(X,L,R:longint);longint; Var giua:longint; Find:boolean; Begin Find:=false; While LBegin Giua:=(L+R) div 2; If a[giua]<=X then begin If X=a[giua] then begin find:=true; TKNP3:=giua; End; R:=giua-1; End; Else L:=giua+1; End; If find=false then Exit(0); End;