• Rezultati Niso Bili Najdeni

Algoritmi inpodatkovne struktureAlgoritmi inpodatkovne strukture

N/A
N/A
Protected

Academic year: 2022

Share "Algoritmi inpodatkovne struktureAlgoritmi inpodatkovne strukture"

Copied!
16
0
0

Celotno besedilo

(1)

Vaje APS,

Vaje APS, ©© UČ, JM UČ, JM

Algoritmi in

podatkovne strukture Algoritmi in

podatkovne strukture

Zahtevnost Zahtevnost

algoritmov

algoritmov

(2)

Vaje APS,

Vaje APS, ©© UČ, JM UČ, JM

Zahtevnost algoritmov Zahtevnost algoritmov

Algoritem za svoje izvajanje potrebuje:

čas

realni čas, št. operacij, št. dostopov do pomnilnika

prostor

pomnilnik, disk

Govorimo o:

časovni zahtevnosti algoritma; in

prostorski zahtevnosti algoritma.

(3)

Vaje APS,

Vaje APS, ©© UČ, JM UČ, JM

Zahtevnost algoritmov Zahtevnost algoritmov

Zahtevnost je odvisna:

od samega algoritma; in

od naloge (vhoda algoritma).

Za reševani problem navadno obstaja ogromno različnih nalog.

Zato govorimo o asimpotski zahtevnosti.

Kakšen je red velikosti zahtevnosti za dani algoritem pri velikih vhodnih podatkih?

(4)

Vaje APS,

Vaje APS, ©© UČ, JM UČ, JM

Asimptotska notacija Asimptotska notacija

O-notacija.

f je kvečjemu reda g, f ne raste hitreje kot g, f je od zgoraj omejena z g.

f(n) c·g(n)

n t

f(n) = O(g(n))

(5)

Vaje APS,

Vaje APS, ©© UČ, JM UČ, JM

Asimptotska notacija Asimptotska notacija

Ω-notacija (omega-notacija).

f je vsaj reda g, f ne raste počasneje kot g, f je od spodaj omejena z g.

f(n) c·g(n)

n t

f(n) = Ω(g(n))

(6)

Vaje APS,

Vaje APS, ©© UČ, JM UČ, JM

Asimptotska notacija Asimptotska notacija

Θ-notacija (theta-notacija)

f je reda g, f je od zgoraj in od spodaj omejena z g.

f(n) c1·g(n)

c2·g(n)

n t

f(n) = θ(g(n))

(7)

APS 1, Jurij Mihelič

Asimptotska notacija Asimptotska notacija

Formalne definicije

O(g(n))={ f (n) ∣ ∃c , n0>0nn0:0 f (n)≤cg(n)}

Ω(g(n))={f (n) ∣ ∃c , n0>0nn0: 0cg(n)≤ f (n)}

=

Θ(g(n))={ f (n) ∣ ∃c1 ,c2,n0>0nn0:0c1 g(n)≤ f (n)≤c2g(n)}

Množice Donald E. Knut

Opomba: vse funkcije so nenegativne.

(8)

APS 1, Jurij Mihelič

Asimptotska notacija Asimptotska notacija

*Bonus: o in ω notacija

O(g(n))={ f (n) ∣ ∃c , n0>0 nn0:0 f (n)≤cg(n)}

Ω(g(n))={ f (n) ∣ ∃c , n0>0 nn0:0cg(n)≤ f (n)}

o(g(n))={ f (n) ∣ ∀ c>0n0 nn0:0 f (n)<cg(n)}

ω(g(n))={ f (n) ∣ ∀ c>0n0 nn0:0cg (n)<f (n)}

<

=

>

Θ(g(n))={ f (n) ∣ ∃c1, c2,n0>0 nn0:0c1 g(n)≤ f (n)≤c2g(n)}

Opomba: vse funkcije so nenegativne.

(9)

APS 1, Jurij Mihelič

Asimptotska notacija Asimptotska notacija

Ustaljena (zlo-)raba

namesto ∈ uporabljamo =

za vse O, Ω in Θ

Leva za vse / desna za enega

f (n)=O( g(n)) ≡ f (n)∈O(g(n))

2 n2+3 n+1=2 n2+Θ(n)=Θ(n2)

(10)

APS 1, Jurij Mihelič

*Notacija s ~ (tildo)

*Notacija s ~ (tildo)

f(n) ~ g(n)

Intuitivno

ujemanje v redu velikosti

ujemanje v konstanti

kot Θ-notacija s konstanto

npr.: 5n3 + 2n2 + n + lg n ~ 5n3

Robert Sedgewick

f (n)∼g(n)≡lim

n→∞

f (n)

g(n) =1

(11)

APS 1, Jurij Mihelič

Asimptotska notacija Asimptotska notacija

Z limitami

L = lim

n→∞

f ( n ) g ( n )

namig notacija limita

< o L = 0

O 0 ≤ L < ∞

= Θ 0 < L < ∞

Ω 0 < L ≤ ∞

> ω L = ∞

~ ~ L = 1

Pri računanju limit pride prav

l'Hopitalovo pravilo

(12)

APS 1, Jurij Mihelič

Razredi asimptotske zahtevnosti Razredi asimptotske zahtevnosti

Funkcija Razred zahtevnosti

1 konstantna

lg n logaritemska

n linearna

n lg n linearitmična, n-log-n

n2 kvadratna

n3 kubična

2n eksponentna

n! faktoriela

(13)

APS 1, Jurij Mihelič

Računanje z asimptotsko notacijo Računanje z asimptotsko notacijo

Refleksivnost:

f(n) = O(f(n))

Eliminacija konstante:

če velja za Θ, potem velja tudi za O in Ω c>0:cf (n)=Θ( f (n))

(14)

APS 1, Jurij Mihelič

Računanje z asimptotsko notacijo Računanje z asimptotsko notacijo

Izrek (simetrija):

Izrek (transponirana simetrija):

Izrek (tranzitivnost):

Velja za vse O, Ω, Θ, o in ω

f (n)=Θ(g (n))⇔ f (n)=Ω(g (n))∧ f (n)=O(g(n))

f (n)=O(g (n))⇔ g (n)=Ω( f (n))

f (n)=O(g (n))∧g(n)=O(h(n))⇒ f (n)=O(h(n))

(15)

APS 1, Jurij Mihelič

Računanje z asimptotsko notacijo Računanje z asimptotsko notacijo

Produkt:

Vsota:

Prevladujoča funkcija:

če za vse n > n0 velja f(n) > g(n), potem O(f(n) + g(n)) = O(f(n))

f (n)⋅g (n)=Θ( f (n)⋅g (n))

f (n)+g (n)=O(max( f (n), g (n))) f (n)+g (n)=Ω(min( f (n), g (n)))

(16)

Vaje APS,

Vaje APS, ©© UČ, JM UČ, JM

Ugotavljanje zahtevnosti Ugotavljanje zahtevnosti

Časovna/prostorska zahtevnost:

v najboljšem primeru

v najslabšem primeru

v povprečju

v poljubnem primeru

Reference

POVEZANI DOKUMENTI

Minimalno vpeto drevo, Barvanje grafov, Najkrajše poti, Pretoki?. Tomaž Dobravec, Algoritmi in podatkovne

● Najkrajše poti, ki vsebujejo k povezav lahko izračunamo. iz najkrajših poti, ki vsebujejo k -1

Novo predlagani kombinirani algoritem, ki je sestavljen iz genetskega algo- ritma in nelinearne regresije, je primerljiv glede toˇ cnosti in mere dobiˇ cka z obstojeˇ cimi

I Ogromna zbirka tekmovalnih nalog iz programiranja I Tekmovanja iz programiranja, obiˇ cajno brez denarnih}. nagrad

I Zbirka tekmovalnih nalog in organizirana tekmovanja (nekaj na mesec).. I Manjˇse

I Zbirka tekmovalnih nalog in organizirana tekmovanja (nekaj na mesec).. I Manjˇse

● Iz FFTjev sodega in lihega polinoma sestavimo FFT originalnega

– skupno zahtevnost celotnega zaporedja operacij porazdelimo na (amortiziramo).. Amortizirana zahtevnost