Download præsentationen
Præsentation er lastning. Vent venligst
Offentliggjort afLine Laugesen Redigeret for ca. et år siden
1
Datastruktur & Algoritmik1 Sidste gang For j:=2 to len(A) do key:=A[j] (* indsæt key *) i:=j-1 while i>0 and A[i]>key do A[i+1]:=A[i] i-- A[i+1]:=key For j:=2 to len(A) do key:=A[j] (* indsæt key *) i:=j-1 while i>0 and A[i]>key do A[i+1]:=A[i] i-- A[i+1]:=key Merge-Sort(A,p,r) (* Sortering A[p],A[p+1],..,A[r] *) if p<r then q:= (p+r)/2 Merge-Sort(A,p,q) Merge-Sort(A,q+1,r) Merge(A,p,q,r) Merge-Sort(A,p,r) (* Sortering A[p],A[p+1],..,A[r] *) if p<r then q:= (p+r)/2 Merge-Sort(A,p,q) Merge-Sort(A,q+1,r) Merge(A,p,q,r) Insertion SortMerge Sort Tidskompleksitet
2
Datastruktur & Algoritmik2 Tidskompleksitet Afhænger af Input til program Kvalitet af kode genereret af kompiler Instruktionshastighed af maskine Kompleksistet af underliggende algoritme. T(n) Køretid (værste) for input af størrelse n. Antal instruktioner på idealiseret maskine. Asymptotisk
3
Datastruktur & Algoritmik3 Algoritmiske forbedringer afgørende også i fremtiden T(n) n 5101520 1000 2000 3000 100n 5n 2 n 3 /2 2n2n Eksponentiel polynomiel T(n)10 3 s10 4 sForøgFak 100n1010010 5n 2 14453.2 n 3 /212272.3 2 n 10131.3
4
Datastruktur & Algoritmik4 I dag!! Præcise notationer til at angive asymptotisk køretid/tidskompleksitet af algoritme Metoder til at bestemme en algoritmes (asymptotiske) køretid –håntering af summer –induktion –Rekurrens/Differens ligninger Næste gang
5
Datastruktur & Algoritmik5 -Notation en mængde af funktioner Vi skriver hvis DEFINITION Asymptotisk tæt grænse
6
Datastruktur & Algoritmik6 -Notation en mængde af funktioner Vi skriver hvis DEFINITION Asymptotisk øvre grænse
7
Datastruktur & Algoritmik7 -Notation en mængde af funktioner Vi skriver hvis DEFINITION Asymptotisk nedre grænse
8
Datastruktur & Algoritmik8 Exponential & Logaritmefunktioner vs polynomier Exponentialfunktion Logaritmefunktion Polynomie ex F(n)=2 n ex log 2 (n) to-tals-logaritmen THM Mere CLR afsnit 2.2.
9
Datastruktur & Algoritmik9 Egenskaber
10
Datastruktur & Algoritmik10 SUMMER Køretid af program Antal Gange 1. sum := 0;1 2. for i:=1 to nn+1 3. do for j:=1 to i2+3+4+...+(n+1) 4. do sum:=sum+1 1+2+3+...+n Antal Gange 1. sum := 0;1 2. for i:=1 to nn+1 3. do for j:=1 to i2+3+4+...+(n+1) 4. do sum:=sum+1 1+2+3+...+n NOTATION
11
Datastruktur & Algoritmik11 Første Induktionsprincip Lad P(n) være udsagn om det naturlige tal n. Hvis 1 (Basis) P(1) sand 2 (Trin) Hvis P(k) er sand da er P(k+1) også sand da er P(n) sand for alle naturlige tal n. Lad P(n) være udsagn om det naturlige tal n. Hvis 1 (Basis) P(1) sand 2 (Trin) Hvis P(k) er sand da er P(k+1) også sand da er P(n) sand for alle naturlige tal n. IH Se Jensen&Skyum eller Rosen
12
Datastruktur & Algoritmik12 Rekursive funktioner f(1) = 1 f(n+1) = (n+1) + f(n) f(1) = 1 f(n+1) = (n+1) + f(n) g(1) = 1 g(n+1)= (n+1)*g(n) g(1) = 1 g(n+1)= (n+1)*g(n) h(1)= 0 h(n+1)= (n+1)*h(n) h(1)= 0 h(n+1)= (n+1)*h(n) k(1)= 1 k(n+1)= 1 + k(n) k(1)= 1 k(n+1)= 1 + k(n) j(1)= 1 j(n+1)= 1 - j(n) j(1)= 1 j(n+1)= 1 - j(n) p(1) = 1 p(n+1) = 2*p(n)+1 p(1) = 1 p(n+1) = 2*p(n)+1
13
Datastruktur & Algoritmik13 Tårnene i Hanoi ABC Skiverne skal flyttes fra A til B under følgende regler - kun 1 skive flyttes ad gangen - ingen skive må anbringes på en mindre skive Hvor mange træk/ hvor lang tid
14
Datastruktur & Algoritmik14 Tårnene i Hanoi Rekursiv løsning ABC Hvis n > 1: - flyt (n-1) øverste skiver fra A til C - flyt største (nederste) skive fra A til B - flyt (n-1) skiver fra C til B Hvis n=1: - flyt (største) skive fra A til B
15
Datastruktur & Algoritmik15 En række summer Andre rækker i CLR
16
Datastruktur & Algoritmik16 Lette grænser for summer
Lignende præsentationer
© 2024 SlidePlayer.dk Inc.
All rights reserved.