Lataa esitys
Esittely latautuu. Ole hyvä ja odota
1
Kompleksisuus Yleistä
2
Kompleksisuus Algoritmien analyysissä tutkitaan algoritmien käyttämän (tietokone)ajoajan ja muistin määrän riippuvuutta syöttöaineiston koosta (N). Syöttöaineisto tarkoittaa esimerkiksi taulukon alkioiden joukkoa, kun tutkitaan taulukoita, ja Fibonacciluvun järjestysnumeroa Fibonaccilukujen laskennassa
3
Algoritmin kompleksisuus
Algoritmin suoritukseen vaadittavien resurssien määrän riippuvuus syötteen koosta huonoimmassa tapauksessa Vähennettäessä jonkin resurssin tarvetta saattaa jonkin toisen resurssin tarve kasvaa sovelluskohtainen tasapaino
4
Aikakompleksisuus Ilmoitetaan syötteen koon n funktiona T(n)
Yksikkönä keskeisten alkeisoperaatioiden määrä Usein riittää pelkän lukumäärän suuruusluokan arviointi Asymptoottinen kompleksisuustarkastelu miten algoritmi käyttäytyy, kun syötteen koko n kasvaa
5
Asymptoottinen aikakompleksisuus
Tarkastellaan yleensä vain niitä lausekkeiden osia, jotka dominoivat lauseketta suurilla n:n arvoilla Usein annetaan kasvua kuvaava funktio tai ylärajafunktio kasvulle
6
T(n)=Θ(f(n)) tai T(n) ~ f(n)
Suuruusluokka Jos T(n) on suuruusluokkaa f(n), merkitään: T(n)=Θ(f(n)) tai T(n) ~ f(n)
7
Yläraja Jos T(n):n yläraja on f(n), merkitään: T(n) = O(f(n))
8
Kompleksisuuden kertaluokat
Kertoma: T(n) ~ n! Eksponentiaalinen: T(n) ~ cn Polynomiaalinen: T(n) ~ nc Lineaarinen: T(n) ~ n Logaritminen: T(n) ~ logcn Vakioaikainen: T(n) ~ 1
9
Kasvunopeuksia log n n n log n n2 2n n! 1 2 4 8 16 24 64 256 65536
384 4096 1.84E19 1.27E89 2048 1.15E77 ? 10 1024 10240 1.8E308
16
Kompleksisuus Laskusääntöjä
17
Perussäännöt Jos T1(N)=O(f(N)) ja T2N=O(g(N)), niin
T1(N) + T2(N) = max( O(f(N)), O(g(N))) T1(N) * T2(N) = O(f(N) * g(N)) Jos T(N) on asteen k polynomi, silloin T(N)=Θ(Nk) logkN = O(N) kaikilla k:n arvoilla
18
Yleisiä sääntöjä Silmukat: silmukan suoritusaika on enintään toistokertojen lukumäärä kerrottuna sen sisältämien lauseiden suoritusajalla Sisäkkäiset silmukat: silmukoitten sisällä olevan lauseen suoritusaika on lauseen suoritusaika kerrottuna silmukoitten toistokertojen tulolla
19
Yleisiä sääntöjä if-lause: suoritusaika on enintään ehdon suoritusajan ja enemmän aikaa vievän haaran suoritusaikojen summa Rekursio: todellinen suorituskertojen määrä selvitettävä jotenkin (palautuskaava) Algoritmi on logaritminen, jos sen koon pienentäminen murto-osaan vaatii vakioajan Algoritmi on lineaarinen, jos sen koon pienentäminen vakiomäärällä vaatii vakioajan
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.