Professional Documents
Culture Documents
PZAL4 PanušA
PZAL4 PanušA
1. 11. 2010
4. pednka
Tdn
Uspodat poloky danho listu v rostoucm
poad
Praktick hledisko: je uiten seadit seznam
sel, znak abecedy, znakovch etzc,
zznam
Pro? Seznam student podle pjmen nebo
podle sla studenta - nutn znt kl
Rzn typy algoritm
Vlastnosti tdcch algoritm stabilita a velikost
pamti
Vyhledvn
Hledme njakou konkrtn hodnotu, kter
se nazv identifikan kl (vyhledvac
kl) a to v njak konkrtn mnoin
prvk.
Podobn situace jako u tdn (rzn typy
algoritm atp.)
Zpracovn etzc
etzec = sekvence znak abecedy
a) textov etzce (psmena, sla,
speciln znaky)
b) bitov etzce (jedniky a nuly)
Grafov lohy
v4
v3
v4
v3
v1
v2
v1
v2
Orientovan
Neorientovan
Grafov lohy
Graf = mnoina bod - uzly, kdy nkter
b
2
Monosti:
A-B-C-D-A
A-B-D-C-A
A-C-B-D-A
A-C-D-B-A
A-D-C-B-A
A-D-B-C-A
Kombinatorick problmy
Hledn takovho kombinatorickho objektu
(nap. permutace, kombinace, podmnoina),
kter vyhovuje danm podmnkm a m dan
vlastnosti (maximalizace hodnoty, minimalizace
nklad apod.)
Jedny z nejnronjch loh z teoretickho
i praktickho hlediska
(extrmn rst potu komb. objekt s rstem
velikosti problm; nejsou znmy algoritmy
ec (pesn) mnoho problm v rozumnm
ase
Geometrick problmy
Problm nejbliho pru je dno n bod v
rovin, nalzt nejbli pr mezi nimi
Problm konvexnho obalu nalzt
nejmen konvexn obal, kter bude
zahrnovat vechny body dan mnoiny
Numerick problmy
een rovnic a systm rovnic; vpoet
uritch integrl apod.
MODIF. OPERACE
Insert(S,x)
Delete(S,x)
Vyaduj
uspodanou
mnoinu
POLE
Jednorozmrn pole sekvence n prvk
stejnho datovho typu
Pstup pes index prvku
Kad prvek :
Prvek[1]
Prvek[2]
Prvek[n-1]
20
-5
Tabulka Excel
Pole
indexy
[0]
[1]
[2]
[n-1]
[2]
[3]
[n]
versus
[1]
CISLA
20
CISLA[1]:=1
1
PISMENA
B
-5
PISMENA[1]:=1
1)Vyprzdnit promnnou
poet
2)Od 1 do n opakuj
A.Jestlie a[i] se rovn
nule
i. Poet:=poet+1
ii. Dal i
B.Jinak dal i
3)Poet nul je poet
4)Konec
Spojov seznam
Sekvence prvk zvanch uzly, kde kad
Prvek[1]
Prvek[n-1]
null
null
Prvek[0]
Prvek[1]
Prvek[n-1]
null
Seznam
Pole a spojov seznam dv zkladn
Zsobnk
Seznam, ve kterm vkldn a
odstraovn prvk je mon jen na
konci (na vrcholu)
LIFO last in first out
Pouit: nap. pi een loh metodou
rozdl a panuj k odloen informac
o tom, kter dl lohy je teba jet
vykonat
Kdy programujeme zsobnk pomoc
pole: prvn prvek pole = dno;
pomocn promnn = vrchol;
VRCHOL
DNO
Fronta
Seznam, ve kterm jsou prvky
odstraovny z jednoho konce struktury
(odchod) a nov jsou pidvny na druh
konec (pchod)
FIFO first in first out
Pouit: pokud potebujeme doasn
odloit data a zachovat pro dal
zpracovn jejich poad
ODCHOD
PCHOD
Grafy
Graf G je uspodan dvojice prvk ve
tvaru G = (V, H), kde V je konen
mnoina vrchol nebo uzl a H je mnoina
hran, kde kad hran h z mnoiny H je
piazena bu:
dvouprvkov mnoina rznch uzl (u, v),
uspodan dvojice rznch uzl (u, v),
Grafy
v4
v3
v4
v3
v1
v2
v1
v2
Orientovan
Neorientovan
V={v1,v2,v3,v4};
V={v1,v2,v3,v4};
E={(v1,v2),(v1,v3),(v1,v4),
E={(v1,v2),(v1,v3),(v1,v4),
(v2,v3),(v4,v1),(v4,v3)}
(v2,v3),(v3,v4)}
Grafy
0 |E| |V|*(|V|-1)/2
Poet hran v neorientovanm grafu, kter
neobsahuje smyky a vce hran mezi
stejnmi uzly.
Reprezentace grafu, nap.:
a) matice sousednosti
b) matice incidence
Matice sousednosti
Jde o matici A typu n x n, kde n je poet uzl
Matice incidence
incidence zde oznauje vztah uzlu a seku, kdy
Stromy
Souvisl acyklick
grafy
|E| = |V| - 1
(nutn, ale ne
postaujc podmnka)
Koenov stromy
- Voln strom, kter obsahuje jeden odlin uzel
koen
Stromy
Pedchdce uzlu x libovoln uzel v na
jednoznan cest od koene do uzlu x
Jestlie y je pedchdce x, potom x se
nazv nsledovnk uzlu y
Jestlie posledn hrana na cest z koene
do uzlu x je hrana (y,x), potom se uzel y
nazv rodi uzlu x a uzel x potomek uzlu
y
Stromy
Dva uzly majcho stejnho rodie se
nazvaj sourozenci.
Uzel bez potomk = list.
Hloubka uzlu x = dlka cesty od koene k
do uzlu x.
Vka stromu nejvt hloubka
libovolnho uzlu.
Seazen strom koenov strom, ve
kterm jsou potomci kadho uzlu
seazeni.
b
c
d
g
f
Hloubka uzlu c - 2
Vka stromu - 3
Binrn strom
Seazen strom, ve kterm m kad uzel
nejvce dva potomky a kad potomek je
uren jako bu lev nebo prav potomek
svho rodie.
Binrn vyhledvac strom slo
piazen kadmu rodiovskmu uzlu je
vt ne vechny sla v jeho levm
podstromu a men ne vechna sla v
pravm podstromu
9
5
12
10
Binrn
vyhledvac
strom
Efektivita vpotu
S jakou efektivitou lze dan kol vyeit?
Men doby:
typ potae
poet mst
Efektivita vpotu
Nsoben N-cifernch sel N2+N
Zpesnn N2 + N2 tedy 2N2
Proces linern v ase nap. k soutu
dvou sel je zapoteb nejve CxN
zkladnch operac (C=3)
Graf zvislosti potu krok je pmka
S=CN, kde S je poet krok
Nsoben je kvadratick
Velikost vpotu
Data o velikosti N se provedou 2N krt
achovnice oslujeme vechna polka
od 1 do 64
Na kad polko polome dvojnsobek
minc, kter jsme poloili na pedchoz
polko na prvn dme dv mince, na
dal 4, 8, 16 atd.
Jak vysok bude sloupeek na poslednm
polku? 15 m? Vc?
Exponenciln
n2
n3
2n
3n
10
0,059 s
20
58 min
30
40
3855 stol.
50
200 mil.
stol.
log2n
3.3
n
10
n*log2n
3.3*10
n2
n3
102
103
103
1.3*1030 9.3*10157
102 6.6
102 6.6*102
104
106
103 10
103 104
106
109
104 13
104 1.3*105
108
1012
105 17
105 1.7*106
1010 1015
106 20
106 2*107
1012 1018
2n
n!
3.6*106
d rstu
Analza efektivity ignoruje multiplikativn
konstanty a zabv dovm odhadem
rstu
Pro klst draz na d rstu pi velikm
rozsahu vstupnch hodnot?
=> bh algoritmu pi malm rozsahu
vstupu pli neodliuje efektivn algoritmy
od mn efektivnch
=
=4
2
T(n)
Cop C(n)
n
Nen nutn znt hodnotu Cop
2 = (2 )
n! je naven mnohem vce
2n
Nejhor ppad
(sekvenn vyhledvn)
V posloupnosti nen nalezen prvek, jeho
hodnota by se rovnala hodnot kle
=> nejvt poet porovnn s klem
Cworst(n) = n
Nejhor ppad
Nejhor ppad vstupu velikosti n: vstup
velikosti n, pro kter algoritmus b
nejpomaleji ze vech monch vstup
Analza nejhorho ppadu poskytuje
velmi dleitou informaci o efektivit
algoritmu ohranienm jeho vpoetnho
asu seshora
vpoetn as nepekro Cworst(n)
n(1 p )
n(1 p )
n
2
2