Professional Documents
Culture Documents
Mc tiu
n cui chng, bn c th: Gii thch c gii thut quy l g. Bit cch din t 1 tc v hng quy. Bit cch hin thc hm quy Phn loi c cc loi quy Gii thch c cch chy mt hm quy. Bit cch kh mt s gii thut quy.
2
n tp
Stack: Cu trc (thng l mng) c c ch x l: vo sau ra trc. Queue: Cu trc (thng l mng) c c ch x l: vo trc ra trc. Stack v Queue c gi l danh sch hn ch. Cc tc v trn nhm tr ni chung: Kim tra trng, kim tra y, thm 1 phn t, xa 1 phn t.
3
quy l g?...
Con ngi hiu c nh ngha quy v quy c chn (iu kin bin, iu kin suy bin) c th l bin ngm nh. Ngi = con ca hai ngi khc Ngm hiu l c 2 ngi u tin. Th mc = cc th mc con + cc tp tin Ngm hiu: Hin nhin tn ti th mc gc l c a.
5
7.3- Tc v quy
C th din t nhiu tc v hng quy. 1+2+3+...+ (n-2) + (n-1) + n Cng( 1 ti n) = n + Cng (1 ti n-1) iu kin bin l iu kin ngng khng quy na. iu kin bin: Cng (1 ti 1) l 1 Cng (1 ti n) = 1, n=1 n + Cng (1 ti n-1)
8
n! = 1, n<=1 n* (n-1)!
2 dng
10
13%2
Bn t vit
12
14
{ if (n<5) return n;
return U(n-1) + G(n-2); } long G(int n) { if (n<8) return n-3;
19
20
21
22
23
C
24
Bi ton Thp H Ni
Xem cch phn tch v m ha bi ton bi ton trong ti liu tham kho
Chuyn n a t ct X sang ct Z nh ct trung gian Y (1) Chuyn n-1 a t ct X sang ct Y nh ct trung gian Z v cc a bn trn l cc a nh. (2) Chuyn a n (to nht) t ct X sang ct ch Z. (3) Lm li cho n-1 a cn li ang ct Y sang ct Z vi X l ct trung gian.
25
Thp H Ni...
1 2 3
1 2
1 A B
2 3
C
26
Kq
n: 4 Kq n: 3 Kq n: 2 Kq n: 1
27
Kq:
n: 4 Kq: n: 3 Kq: n: 2 Kq 1 n: 1
28
Kq:
n: 4 Kq: n: 3 Kq: 2*1=2 n: 2 Kq 1 n: 1
29
Kq:
n: 4 Kq: 3*2=6 n: 3 Kq: 2 n: 2
30
Kq: 4*6=24
n: 4 Kq: 6 n: 3
31
Kq:
24
n: 4
32
33
7.10- Kh quy
L qu trnh chuyn i 1 gii thut quy thnh gii thut khng quy. Cha c gii php cho vic chuyn i ny mt cch tng qut. Cch tip cn: (1) Dng quan im quy tm gii thut cho bi ton. (2) M ha gii thut quy. (3) Kh quy c gii thut khng--quy.
35
tng: Lu li cc tr ca cc ln tnh ton trc lm d liu cho vic tnh ton ca ln sau. i t iu kin bin i ti iu kin kt thc.
36
37
Th d hm tnh tr th n ca dy Fibonacci:
long Fibo(int n) { if (n<=2) return 1; // hai chn return Fibo(n-2) + Fibo (n-1); } long Fibo(int n) { if (n<=2) return 1; // hai chn long t1=1, t2=1; for (int i=3; i<=n;i++) { t3=t1+t2; t1=t2; t2= t3; } return t3; }
1 1 2 3 5 8...
t 1 t 2 t1 t3=t1+t 2 t2 t1 t3 t2 t1 i = 3 4 t3 t2 5 t3 6
38
40
Tm tt
Hm quy l hm m trong thn hm li gi chnh n. Hm quy km hiu qa v: tn b nh va gi hm qa nhiu ln. Tuy nhin vit hm quy rt ngn gn. Vng lp v stack l nhng k thut gip kh gii thut quy.
41
Bi tp
Vit chng trnh xut n tr u tin ca 1 cp s cng c s hng u l a (nhp t bn phm), cng sai r (nhp t bn phm). S dng k thut quy xy dng hm tnh tr th i ca 1 cp s cng ny. Dng k thut quy gii phng trnh f(x) trong khong [a,b] vi sai s epsilon. Gi px l pointer ca nghim if (f(a).f(b)>0) return NULL (khng c nghim) else if (b-a <= epsilon) return &a; else { c=(b+a)/2) ; if (f(a).f(c)<=0) return Tm nghim trong on [a,c]; else return Tm nghim trong on [c,b]; }
42
Bi tp
Vit chng trnh nhp 1 mng s int, nhp 1 tr x, tm v tr c x cui cng trong mng. Dng k thut quy tm v tr ny. Tm x trong a[], n : -1 nu n<0 n-1 nu a[n-1]=x Tm x trong a, n-1 Vit chng trnh nhp 1 ma trn vung cc s int , nhp 1 tr x. Tm v tr <dng,ct> c x dng k thut quy.
NULL, nu n<1 Tm v tr c x trong ma trn m,n nu c x trong ct cui th return v tr ny nu c x trong hng cui th return v tr ny return Tm v tr c x trong m,n-1
43