Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)

Liknende presentasjoner


Presentasjon om: "INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)"— Utskrift av presentasjonen:

1 INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)

2 Introduksjon En algoritme er en klart spesifisert trinnvis framgangsmåte for å løse et problem Når algoritmen er bestemt og korrekt er neste trinn å bestemme krav til tid og plass Kapitlet behandler Hvordan estimere kjøretida Hvordan redusere kjøretida Uforsiktig bruk av rekursjon Effektive algoritmer for å opphøye tall i n-te potens og finne største felles mål.

3 Analyse av algoritmer Hvordan avhenger av kjøretiden av n, der n er datamengden algoritmen skal håndtere - (n kan være antall bit, byte, heltall eller poster) Best case, Worst case eller Average? Muligheter: 1. Ta tiden 2. Telle antall operasjoner 3. Finne en funksjon som har "samme" veksthastighet som algoritmen Mest brukt er å finne en funksjon som representerer veksthastigheten for worst case

4 Definisjoner La T(N) være kjøretida for programmet T(N)=O(f(N)) hvis det finnes c og n 0 slik at T(N) =n 0 T(N)=Ω(g(N)) hvis det finnes c og n 0 slik at T(N)>=cg(N) når N>=n 0 T(N)=Θ(h(N)) hvis og bare hvis T(N)=O(h(N)) og T(N)=Ω(h(N)) T(N)=o(p(N)) hvis T(N)=O(p(N)) og T(N) != Ω(p(N)) Da er O(f(n)) øverste grense for kjøretida Ω(g(N)) nedre grense for kjøretiden Θ(h(N)) eksakt kjøretid

5 Kjøretidskalkulasjoner Ikke knyttet til bestemt programmeringsspråk – bare til algoritme Idealisert datamaskin Alle grunnleggende operasjoner tar like lang tid – 1 tidsenhet for (i=0;i

6 Kjøretidskalkulasjoner Regler 1. For- looper: kjøretid er kjøretid for setningene i for-loopen ganger antall iterasjoner 2. Nestede looper: Analyser innenfra og ut 3. Påfølgende setninger - legg sammen - den største teller 4. Test: testen pluss den største greina, men bare hvis den største greina er i jevnlig bruk

7 Eksempler 1. Regne mva for n varer 2. Lage en multiplikasjonstabell 3. Binærsøk 4. Rekursiv fibonacci

8 Øvre grense for kjøretida O(f(n)) Brukes mest - oppgaven er å finne en f(n) som er enklest mulig. Vi tar bare med leddet som vil dominere når n blir stor. Ved enkel for-løkke T(n)=O(n) fordi T(n)=c 1 *n+c 2 Ved dobbel for-løkke T(n)=O(n 2 ) fordi T(n)=c 1 n 2 +c 2 n+c 3

9 Regneregler for O Regler hvis T(N)=O(f(N)) og U(N)=O(g(N)) så er T(N)+U(N)=max(O(f(N)),O(g(N))) T(N)*U(N)=O(f(N)*g(N)) hvis T(N) er et polynom av grad k, så er T(N)= Θ(N k ) log k N=O(N)

10 Typiske vekstrater FunksjonNavn cKonstant log NLogaritmisk log 2 NLog-kvadratisk NLineær N log N N2N2 Kvadratisk N3N3 Kubisk 2 N, N!Eksponentiell

11

12

13 Hva skal analyseres Kjøretid avhenger av Kompilator X Datamaskin X Algoritme Datamengde og sammensetning Språk X Tavg(N), Tworst(N)


Laste ned ppt "INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)"

Liknende presentasjoner


Annonser fra Google