Professional Documents
Culture Documents
Tinh Chi Phi Thuat Toan
Tinh Chi Phi Thuat Toan
LOGO
Ni dung
1 2
www.themegallery.com
Mi gii thut c chi ph (cost) khc nhau Chi ph thng c tnh da trn:
thi gian (time) b nh (space/memory)
Do , ngi ta thng dng n v o logic (vd. s php tnh) thay cho n v o thi gian tht (mili-giy, giy,)
VD. Chi ph (thi gian) sp xp mng n phn t bng gii thut Bubble sort l n2 (thao tc)
n gin, ngi ta xem nh cc thao tc c bn c thi gian thc hin nh nhau (vd. +,-,*,/, so snh, if else,)
chi ph cho thut ton tnh tng trn: f(n) = 3n+2
6
Vic xc nh chi ph chnh xc cho mt gii thut rt kh khn, thm ch nhiu khi khng th
ta c th b qua cc thnh phn ph (nh hng khng ng k) VD. for (i=0; i<n; i++) { a = a + b; if (c==0) a = 0; } // chi ph: f(n) = n
7
10
Ni dung
1 2
11
Big-O [1/6]
Lch s:
K hiu Big-O c gii thiu nm 1894 bi Paul Bachmann (c) trong cun sch Analytische Zahlentheorie (Analytic Number Theory") (ti bn ln 2) K hiu ny (sau ) c ph bin rng ri bi nh ton hc Edmund Landau, nn cn gi l k hiu Landau (Landau notation), hay Bachmann-Landau notation Donald Knuth l ngi a k hiu ny vo ngnh Khoa hc my tnh (Computer Science) nm 1976 Big Omicron and big Omega and big Theta - ACM SIGACT News, Volume 8, Issue 2
12
Big-O [2/6]
nh ngha:
Cho f(n) v g(n) l hai hm s Ta ni: f(n) = O(g(n)) khi n , nu tn ti cc s dng c v K sao cho: |f(n)| <= c*|g(n)| n>=K Gii thch: f l big-O ca g nu tn ti s dng c sao cho f khng th ln hn c*g khi n ln
Big-O [3/6]
14
Big-O [4/6]
VD. f(n) = 2n2 + 6n + 1 l O(n2), g(n) = n2
Tht vy, ta chn c c = 3 v K = 7 n >= 7 f(n) < 3 * g(n)
15
Big-O [5/6]
Khi p dng big-O vo vic c lng phc tp ca gii thut, ta nn chn g(n):
cng n gin cng tt, b qua cc hng s v cc thnh phn c ly tha thp
16
Big-O [6/6]
Big-
nh ngha:
Cho f(n) v g(n) l hai hm s Ta ni: f(n) = (g(n)) khi n , nu tn ti cc s dng c v K sao cho: |f(n)| >= c*|g(n)| n>=K Gii thch: f l big- ca g nu tn ti s dng c sao cho f ln hn c*g khi n ln
18
Big-
nh ngha:
Cho f(n) v g(n) l hai hm s Ta ni: f(n) = (g(n)) khi n , nu tn ti cc s dng c1, c2 v K sao cho: c1*|g(n)| <= |f(n)| <= c2*|g(n)| n>=K
19
So snh cc hm s
log n 0 1 2 3 4 5
n 1 2 4 8 16 32
n log n 0 2 8 24 64 160
n2 1 4 16 64 256 1,024
21
Bi tp [1/2]
Tnh chi ph gii hn trn (big-O) cho cc gii thut sau:
VD1. for (i = 0; i < n; i++) for (j = 0; j < n; j++) b[i][j] += c; VD2. for (i = 0; i < n; i++) if (a[i] == k) return 1; return 0; VD3. for (i = 0; i < n; i++) for (j = i+1; j < n; j++) b[i][j] -= c;
22
Bi tp [2/2]
VD 4,5,6: cng, nhn v chuyn v ma trn
23
Q&A
24