Divide-and-Conquer. Lars Vidar Magnusson

Størrelse: px
Begynne med side:

Download "Divide-and-Conquer. Lars Vidar Magnusson 13.1.2015"

Transkript

1 Divide-and-Conquer Lars Vidar Magnusson Kapittel 4 Maximum sub-array problemet Matrix multiplikasjon Analyse av divide-and-conquer algoritmer ved hjelp av substitusjonsmetoden

2 Divide-and-Conquer Algoritmer Divide (Del/Split) problemet opp i et antall delproblemer som er mindre instanser av samme problem. Conquer (Beseir/Hersk) delproblemene ved å løse dem rekursivt. Når delproblemen er små nok kan de løses enkelt. Combine (Kombiner) løsningene for delproblemene til en løsning for det orginale problemet.

3 Divide-and-Conquer Algoritmer Recursive Case Når delproblemene er store nok til å måtte deles opp ytterligere Base Case Når delproblemene er blitt små nok stopper rekursjonen opp (bottoms out)

4 Recurrences Recurrences (gjentagelser) er ligninger som beskriver en funksjon ved hjelp av seg selv på mindre input. Recurrences går hånd i hånd med divide-and-conquer algoritmer. Under er recurrence-ligningen for Merge-Sort som vi har hevdet er Θ(n log n). { Θ(1) if n = 1 T (n) = 2T (n/2) + Θ(n) if n > 1 Vi skal se på tre metoder for å løse recurrences i.e. finne asymptotiske grenser for løsningen.

5 Maximum-Subarray Problemet Å finne maksimum subarray (delarray) av en array med positive og negative tall kalles maximum-subarray problemet. Kan benyttes for å finne beste tidspunkt for å kjøpe og selge aksjer i aksjehandel. Kan løses brute-force ved å teste alle ( n 2) mulige varianter, men vi skal se om ikke vi kan finne en mer effektiv algoritme ved hjelp av divide-and-conquer.

6 Find-Maximum-Subarray Å finne maksimum-subarray i en array kan deles i to ved å dele input i to, slik vi gjorde med Merge-Sort. Vi får da en av tre muligheter Maksimum subarray ligger i venstre halvdel Maksimum subarray ligger i høyre halvdel Maksimum subarray ligger mellom de to delene Vi kan sjekke de to første enkelt ved hjelp av rekursjon, men den siste trenger en egen hjelpefunksjon.

7 Find-Max-Crossing-Subarray Find-Max-Crossing-Subarray(A, low, mid, high) 1 left-sum = 2 sum = 0 3 for i = mid downto low 4 sum = sum + A[i] 5 if sum > left-sum 6 left-sum = sum 7 max-left = i 8 right-sum = 9 sum = 0 10 for j = mid + 1 to high 11 sum = sum + A[j] 12 if sum > right-sum 13 right-sum = sum 14 max-right = j 15 return (max-left, max-right, left-sum + right-sum)

8 Analyse av Find-Max-Crossing-Subarray Vi kan enkelt finne de asymptotiske grensene for Find-Max-Crossing-Subarray ved å telle løkker. Vi har to løkker som begge itererer gjennom en andel av hele input. Siden løkkene kommer etter hverandre og ingen av de avbrytes under spesielle vilkår så er Find-Max-Crossing-Subarray = Θ(n).

9 Find-Maximum-Subarray Find-Maximum-Subarray(A, low, high) 1 if high == low 2 return (low, high, A[low]) 3 else mid = (low + high)/2 4 (left-low, left-high, left-sum) = Find-Maximum-Subarray(A, low, mid) 5 (right-low, right-high, right-sum) = Find-Maximum-Subarray(A, mid + 1, high) 6 (cross-low, cross-high, cross-sum) = Find-Max-Crossing-Subarray(A, low, mid, high) 7 if left-sum right-sum and left-sum cross-sum 8 return (left-low, left-high, left-sum) 9 elseif right-sum left-sum and right-sum cross-sum 10 return (right-low, right-high, right-sum) 11 else return (cross-low, cross-high, cross-sum)

10 Analyse av Find-Maximum-Subarray Når vi skal analysere Find-Maximum-Subarray holder det ikke å telle løkker. Vi må i stedet benytte oss av recurrences til å finne de asymptotiske grensene.

11 Analyse av Find-Maximum-Subarray I basis tilfellet, når n = 1, vil bare de første linjene av algoritmen kjøres i.e. T (1) = Θ(1). De to rekursive kallene tar begge halvparten av orginalinput i.e 2T (n/2). Kallet til Find-Max-Crossing-Subarray vil som vi fant tidligere kjøre på Θ(n) tid. Vi ender da opp med følgende recurrence-ligning. { Θ(1) if n = 1 T (n) = 2T (n/2) + Θ(n) if n > 1 Dette er den samme ligningen som vi fikk for Merge-Sort i.e. Find-Maximum-Subarray = Θ(n log n).

12 Matrix Multiplikasjon Matrix multiplikasjon mellom to 2 2 matriser A og B. [ ] [ ] a11 a A = 12 b11 b B = 12 C = AB a 21 a 22 b 21 b 22 Vi kan finne koeffisientene i matrisen C kan finnes ved å løse følgende ligning c ij = a i1 b 1j + a i2 b 2j Generelt for n n matriser kan vi finne c ij med følgende ligning. n c ij = a ik b kj k=1 Siden det er n 2 koeffisienter i en n n matrise ender vi da opp med at Square-Matrix-Multiply = Θ(n 3 ).

13 Square-Matrix-Multiply-Recursive For å gjøre oppgaven litt enklere så sier vi at vi bare jobber med n n matriser hvor n {2 x : x N}. En multplikasjon av to n n matriser kan da gjøres ved å dele en matrise opp i 4 stykk n/2 n/2 delmatriser. A = ( ) A11 A 12 A 21 A 22 B = ( ) B11 B 12 B 21 B 22 C = ( ) C11 C 12 C 21 C 22 Delmatrisene settes så sammen igjen etter multiplikasjonen. ( ) ( ) ( ) C11 C C = 12 A11 A = 12 B11 B 12 C 21 C 22 A 21 A 22 B 21 B 22

14 Square-Matrix-Multiply-Recursive Square-Matrix-Multiply-Recursive(A, B) 1 n = A.rows 2 let C be a new n n matrix 3 if n == 1 4 c 11 = a 11 b 11 5 else partition A, B, and C 6 C 11 = Square-Matrix-Multiply-Recursive(A 11, B 11 ) +Square-Matrix-Multiply-Recursive(A 12, B 21 ) 7 C 12 = Square-Matrix-Multiply-Recursive(A 11, B 12 ) +Square-Matrix-Multiply-Recursive(A 12, B 22 ) 8 C 21 = Square-Matrix-Multiply-Recursive(A 21, B 11 ) +Square-Matrix-Multiply-Recursive(A 22, B 21 ) 9 C 22 = Square-Matrix-Multiply-Recursive(A 21, B 12 ) +Square-Matrix-Multiply-Recursive(A 22, B 22 ) 10 return C

15 Analyse av Square-Matrix-Multiply-Recursive Vi har i basis-tilfellet n = 1 en kjøretid T (1) = Θ(1). I det rekursive tilfellet deles hver av de to n n matrisene opp i fire n/2 n/2 matriser og vi gjør 8 rekursive kall i.e. 8T (n/2). Vi må legge sammen resultatene fra de rekursive kallene, hver med n 2 /4 elementer i.e. hver av de fire addisjonene krever Θ(n 2 ) tid. Algoritmen har utelatt et viktig element, delingen av matrisene. Dette kan gjøres i enten konstant tid (Θ(1)) ved hjelp av indekser, eller i kvadratisk tid (Θ(n 2 )) ved hjelp av kopiering.

16 Analyse av Square-Matrix-Multiply-Recursive Utifra hva vi kom frem til på forrige slide så får vi følgende recurrence-ligning. { Θ(1) if n = 1 T (n) = 8T (n/2) + Θ(n 2 ) if n > 1 Som vi snart skal se gir dette en total kjøretid er Θ(n 3 ) som ikke er bedre enn direkte multiplikasjon. Legg merke til at vi kan fjerne konstante ledd i asymptotiske leddene men ikke i leddene som refererer til seg selv (T (n)) i recurrence-ligningen.

17 Strassen s Matrix Multiplikasjon Kjøretiden til den rekursive algoritmen for matrisemultiplikasjon kan forbedres fra Θ(n 3 ) til Θ(n log 7 ). Dette gjøres ved å redusere antallet nødvendige rekursive kall fra 8 til 7 ved å dele opp matrisen på en annen måte. Dette kalles Strassen s metode for matrisemultiplikasjon og er nøye dokumentert i boka.

18 Løse Recurrences med Substitusjonsmetoden Substitusjonsmetoden er den mest primitive av de tre metodene vi dekker i kurset, og kan derfor også oppfattes som den vanskeligste. Den kan beskrives med to enkle steg 1 Gjett på formen til løsningen e.g. Θ(n log n) 2 Bruk matematisk induksjon til å finne konstanter og vise at løsningen virker. Vi kan bruke substitusjonsmetoden til å finne både øvre og nedre grenser. En kraftig metode, men er svært avhengig av analytikers evne til å gjøre gode gjetninger.

19 Eksempel på Substitusjonsmetoden La oss bruke substitusjonsmetoden for å finne en øvre grense for T (n) = 2T (n/2) + n. Vi gjetter på at denne gjentagelsen er O(n log n). Da må vi bevise at T (n) cn log n for en eller annen positiv konstant c. T (n) 2(c( n/2 ) log( n/2 )) + n cn log(n/2) + n = cn log n cn log 2 + n = cn log n cn + n cn log n Dette holder for c 1.

20 Eksempel på Substitusjonsmetoden Det andre kravet i matematisk induksjon er at grensetilfellen må være oppfylt. Dette kan noen ganger bli et problem. Et eksempel er basistilfellet T (1) = 1. T (1) > 1 log 1 = 0 Dette oppfyller ikke kravet om at T (n) cn log n, men definisjonene av de asymptotiske grensene tillater at vi prøver oss med større verdier for n 0. La oss prøve n 0 = 2 i stedet. Vi setter først inn i likningen. T (2) = 2T (1) + 2 = 4 Dette oppfyller kravet, siden T (2) cn log n = 2c er gyldig for c 2.

21 Vanskeligheter med Substitusjonsmetoden Mye av vanskelighetene med substitusjonsmetoden går ut på å gjette riktig. Erfaring hjelper Begynn med løse grenser og jobb innover Siden vi jobber med matematisk induksjon kan vi ikke lenger være slappe med konstanter og lavere-ordens ledd. Alt må være formelt.

LO118D Forelesning 2 (DM)

LO118D Forelesning 2 (DM) LO118D Forelesning 2 (DM) Kjøretidsanalyse, matematisk induksjon, rekursjon 22.08.2007 1 Kjøretidsanalyse 2 Matematisk induksjon 3 Rekursjon Kjøretidsanalyse Eksempel Finne antall kombinasjoner med minst

Detaljer

Løsningsforslag for Obligatorisk Oppgave 1. Algoritmer og Datastrukturer ITF20006

Løsningsforslag for Obligatorisk Oppgave 1. Algoritmer og Datastrukturer ITF20006 Løsningsforslag for Obligatorisk Oppgave 1 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist 310114 Den første obligatoriske oppgaven tar for seg de fem første forelesningene, som i hovedsak

Detaljer

Sortering i Lineær Tid

Sortering i Lineær Tid Sortering i Lineær Tid Lars Vidar Magnusson 5.2.2014 Kapittel 8 Counting Sort Radix Sort Bucket Sort Sammenligningsbasert Sortering Sorteringsalgoritmene vi har sett på så langt har alle vært sammenligningsbaserte

Detaljer

Grådige algoritmer. Lars Vidar Magnusson Kapittel 16. Aktivitetvelgingsproblemet Huffmankoder

Grådige algoritmer. Lars Vidar Magnusson Kapittel 16. Aktivitetvelgingsproblemet Huffmankoder Grådige Algoritmer Lars Vidar Magnusson 12.3.2014 Kapittel 16 Grådige algoritmer Aktivitetvelgingsproblemet Huffmankoder Ideen bak Grådige Algoritmer Ideen bak grådige algoritmer er å løse optimaliseringsproblem

Detaljer

Heapsort. Lars Vidar Magnusson Kapittel 6 Heaps Heapsort Prioritetskøer

Heapsort. Lars Vidar Magnusson Kapittel 6 Heaps Heapsort Prioritetskøer Heapsort Lars Vidar Magnusson 24.1.2014 Kapittel 6 Heaps Heapsort Prioritetskøer Sorterings Problemet Sorterings problemet er et av de mest fundementalske problemene innen informatikken. Vi sorterer typisk

Detaljer

PG4200 Algoritmer og datastrukturer Forelesning 3 Rekursjon Estimering

PG4200 Algoritmer og datastrukturer Forelesning 3 Rekursjon Estimering PG4200 Algoritmer og datastrukturer Forelesning 3 Rekursjon Estimering Lars Sydnes, NITH 22.januar 2014 I. Rekursjon commons.wikimedia.org Rekursjon i naturen En gren er et tre som sitter fast på et tre.

Detaljer

Analyse av Algoritmer

Analyse av Algoritmer Analyse av Algoritmer Lars Vidar Magnusson 10.1.2014 Asymptotisk notasjon (kapittel 3) Kompleksitetsklasser Uløselige problem Asymptotisk Notasjon Asymptotisk analyse innebærer å finne en algoritmes kjøretid

Detaljer

Lars Vidar Magnusson Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting

Lars Vidar Magnusson Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting Rød-Svarte Trær Lars Vidar Magnusson 21.2.2014 Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting Rød-Svarte Trær Rød-Svarte trær (red-black trees) er en variasjon binære søketrær som

Detaljer

INF2220: Time 12 - Sortering

INF2220: Time 12 - Sortering INF0: Time 1 - Sortering Mathias Lohne mathialo Noen algoritmer Vi skal nå se på noen konkrete sorteringsalgoritmer. Gjennomgående i alle eksempler vil vi sortere tall etter tallverdi, men som diskutert

Detaljer

n/b log b n = (lg n) a log b n = n log b a

n/b log b n = (lg n) a log b n = n log b a Masterteoremet 1 T (n) = at (n/b) + f(n) Antall «barn»: Størrelse per «barn»: «Høyde»: a n/b log b n = (lg n) Rota har f(n) arbeid; hver løvnode har en konstant mengde arbeid. Hva vil dominere totalen?

Detaljer

Løsningsforslag for Obligatorisk Oppgave 2. Algoritmer og Datastrukturer ITF20006

Løsningsforslag for Obligatorisk Oppgave 2. Algoritmer og Datastrukturer ITF20006 Løsningsforslag for Obligatorisk Oppgave 2 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist 28.02.14 Den andre obligatoriske oppgaven tar for seg forelesning 5, 6, og 7 som dreier seg om

Detaljer

Grunnleggende Grafalgoritmer

Grunnleggende Grafalgoritmer Grunnleggende Grafalgoritmer Lars Vidar Magnusson 19.3.2014 Kapittel 22 Representere en graf Bredde-først søk Grafer i Informatikken Problem med grafer går ofte igjen i informatikkens verden, så det å

Detaljer

Algdat - øvingsforelesning

Algdat - øvingsforelesning Algdat - øvingsforelesning Dynamisk programmering Nils Barlaug Dagens plan 1. 2. 3. 4. Praktisk og dagens plan LF øving 8 a. Teori b. Praksis Dynamisk programmering a. Introduksjon b. Rod Cutting c. Matrise-multiplikasjon

Detaljer

Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl

Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl TDT4120 2003-12-09 Stud.-nr: Antall sider: 1/7 Løsningsforslag for eksamen i fag TDT4120 Algoritmer og datastrukturer Tirsdag 9. desember 2003, kl. 0900 1500 Faglig kontakt under eksamen: Arne Halaas,

Detaljer

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert. Tenk vann som sprer seg i rør: Vi behandler krysningspunktene i den rekkefølgen de fylles. Det må gi

Detaljer

Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer

Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer Python: Rekursjon (og programmering av algoritmer) Python-bok: Kapittel 12 + teoribok om Algoritmer TDT4110 IT Grunnkurs Professor Guttorm Sindre Læringsmål og pensum Mål Forstå, og kunne bruke, algoritmer

Detaljer

Løsningsforslag for utvalgte oppgaver fra kapittel 3

Løsningsforslag for utvalgte oppgaver fra kapittel 3 Løsningsforslag for utvalgte oppgaver fra kapittel 3 3.3 1 Demo innsettingssortering..................... 1 3.5 1 Demo velgesortering........................ 2 3.5 2 Velgesortering...........................

Detaljer

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Metoden ble formalisert av Richard Bellmann (RAND Corporation) på 50-tallet. Programmering i betydningen planlegge, ta beslutninger. (Har ikke noe med kode eller å skrive kode å

Detaljer

Algoritmer - definisjon

Algoritmer - definisjon Algoritmeanalyse Algoritmer - definisjon En algoritme er en beskrivelse av hvordan man løser et veldefinert problem med en presist formulert sekvens av et endelig antall enkle, utvetydige og tidsbegrensede

Detaljer

Matriseoperasjoner. E.Malinnikova, NTNU, Institutt for matematiske fag. September 22, 2009

Matriseoperasjoner. E.Malinnikova, NTNU, Institutt for matematiske fag. September 22, 2009 Matriseoperasjoner E.Malinnikova, NTNU, Institutt for matematiske fag September 22, 2009 Addisjon av matriser Hvis A = [a ij ] og B = [b ij ] er matriser med samme størrelse, så er summen A + B matrisen

Detaljer

PG4200 Algoritmer og datastrukturer forelesning 3. Lars Sydnes 29. oktober 2014

PG4200 Algoritmer og datastrukturer forelesning 3. Lars Sydnes 29. oktober 2014 PG4200 Algoritmer og datastrukturer forelesning 3 Lars Sydnes 29. oktober 2014 Plan Måling av kjøretid (delvis repetisjon) Matematisk analyse av kjøretid Presentasjon av innlevering 1 I Innlevering 1 Innlevering

Detaljer

Quicksort. Fra idé til algoritme.

Quicksort. Fra idé til algoritme. Quicksort Fra idé til algoritme. Quicksortalgoritme algoritmeidé 1. Del arrayen i to deler, slik at alle elementer i den ene delen er mindre enn alle elementer i den andre delen. Q U I C K S O R T A L

Detaljer

TDT4105 Informasjonsteknologi, grunnkurs

TDT4105 Informasjonsteknologi, grunnkurs 1 TDT4105 Informasjonsteknologi, grunnkurs Matlab: Sortering og søking Anders Christensen (anders@idi.ntnu.no) Rune Sætre (satre@idi.ntnu.no) TDT4105 IT Grunnkurs 2 Pensum Matlab-boka: 12.3 og 12.5 Stoffet

Detaljer

Øvingsforelesning 6. Sorteringsalgoritmer. Martin Kirkholt Melhus Basert på foiler av Kristian Veøy 30/09/14 1

Øvingsforelesning 6. Sorteringsalgoritmer. Martin Kirkholt Melhus Basert på foiler av Kristian Veøy 30/09/14 1 Øvingsforelesning 6 Sorteringsalgoritmer Martin Kirkholt Melhus martme@stud.ntnu.no Basert på foiler av Kristian Veøy 30/09/14 1 Agenda l Spørsmål fra øving 4 l Sortering l Presentasjon av øving 6 30/09/14

Detaljer

LO118D Forelesning 12 (DM)

LO118D Forelesning 12 (DM) LO118D Forelesning 12 (DM) Trær 15.10.2007 1 Traversering av trær 2 Beslutningstrær 3 Isomorfisme i trær Preorden-traversering 1 Behandle den nåværende noden. 2 Rekursivt behandle venstre subtre. 3 Rekursivt

Detaljer

Dagens stoff er hentet fra kapittel 9 i læreboka, samt kapittel 20.5 (som vi «hoppet over» sist)

Dagens stoff er hentet fra kapittel 9 i læreboka, samt kapittel 20.5 (som vi «hoppet over» sist) Dynamisk programmering Undervises av Stein Krogdahl 5. september 2012 Dagens stoff er hentet fra kapittel 9 i læreboka, samt kapittel 20.5 (som vi «hoppet over» sist) Kapittel 9 er lagt ut på undervisningsplanen.

Detaljer

Forelesning 4 torsdag den 28. august

Forelesning 4 torsdag den 28. august Forelesning 4 torsdag den 28. august 1.10 Rekursjon Merknad 1.10.1. Hvert tall i sekvensen 1, 2, 4, 8, 16,... er to ganger det foregående. Hvordan kan vi beskrive sekvensen formelt? Vi kan ikke skrive

Detaljer

Rekursiv programmering

Rekursiv programmering Rekursiv programmering Babushka-dukker En russisk Babushkadukke er en sekvens av like dukker inne i hverandre, som kan åpnes Hver gang en dukke åpnes er det en mindre utgave av dukken inni, inntil man

Detaljer

Sorteringsproblemet. Gitt en array A med n elementer som kan sammenlignes med hverandre:

Sorteringsproblemet. Gitt en array A med n elementer som kan sammenlignes med hverandre: Sortering Sorteringsproblemet Gitt en array A med n elementer som kan sammenlignes med hverandre: Finn en ordning (eller permutasjon) av elementene i A slik at de står i stigende (evt. avtagende) rekkefølge

Detaljer

Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006

Løsningsforslag for Obligatorisk Oppgave 3. Algoritmer og Datastrukturer ITF20006 Løsningsforslag for Obligatorisk Oppgave 3 Algoritmer og Datastrukturer ITF20006 Lars Vidar Magnusson Frist 28.03.14 Den tredje obligatoriske oppgaven tar for seg forelesning 9 til 13, som dreier seg om

Detaljer

Grunnleggende Datastrukturer

Grunnleggende Datastrukturer Grunnleggende Datastrukturer Lars Vidar Magnusson 7.2.2014 Kapittel 10 Stakker og køer Lenkede lister Pekere og objekter Trerepresentasjoner Datastrukturer Vi er i gang med tredje del av kurset hvor vi

Detaljer

Rekursjon som programmeringsteknikk

Rekursjon som programmeringsteknikk Rekursjon Kap.7 Sist oppdatert 15.02.10 Rekursjon som programmeringsteknikk 10-1 Rekursiv tenkning Rekursjon er en programmeringsteknikk der en metode kan kalle seg selv for å løse problemet. En rekursiv

Detaljer

Hashtabeller. Lars Vidar Magnusson Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering

Hashtabeller. Lars Vidar Magnusson Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering Hashtabeller Lars Vidar Magnusson 12.2.2014 Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering Dictionaries Mange applikasjoner trenger dynamiske sett som bare har dictionary oparsjonene

Detaljer

LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105)

LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105) Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Side 1 av 8 Faglig kontakt under eksamen: Magnus Lie Hetland LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER

Detaljer

Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010

Hvorfor sortering og søking? Søking og sortering. Binære søketrær. Ordnet innsetting forbereder for mer effektiv søking og sortering INF1010 INF1010 Hvorfor sortering og søking? Man bør ha orden i dataene umulig å leve uten i informasjonssamfunnet vi blir fort lei av å lete poleksempel internett alt er søking og sortering alternativer til sortering

Detaljer

Heap* En heap er et komplett binært tre: En heap er også et monotont binært tre:

Heap* En heap er et komplett binært tre: En heap er også et monotont binært tre: Heap Heap* En heap er et komplett binært tre: Alle nivåene i treet, unntatt (muligens) det nederste, er alltid helt fylt opp med noder Alle noder på nederste nivå ligger til venstre En heap er også et

Detaljer

ALGORITMER OG DATASTRUKTURER

ALGORITMER OG DATASTRUKTURER Stud. nr: Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE

Detaljer

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema va er en algoritme? Vanlig sammenligning: Oppskrift. nput lgoritme NF1020 - ØSTEN 2006 Kursansvarlige Ragnar Normann E-post: ragnarn@ifi.uio.no Output Knuth : tillegg til å være et endelig sett med regler

Detaljer

Kompleksitetsanalyse Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder

Kompleksitetsanalyse Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder Innhold 1 1 1.1 Hva er en algoritme?............................... 1 1.2

Detaljer

Palindrom - iterativt

Palindrom - iterativt 1 TDT4105 Informasjonsteknologi, grunnkurs Matlab: Sortering og søking Kunnskap for en bedre verden Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: terjery@idi.ntnu.no Tlf:

Detaljer

Lars Vidar Magnusson

Lars Vidar Magnusson Binære Søketrær Lars Vidar Magnusson 14.2.2014 Kapittel 12 Binære Søketrær Søking Insetting Sletting Søketrær Søketrær er datastrukturer som støtter mange dynamiske sett operasjoner. Kan bli brukt både

Detaljer

O-notasjon og kompleksitet

O-notasjon og kompleksitet 1 TDT4105 Informasjonsteknologi, grunnkurs Matlab: Sortering og søking Kunnskap for en bedre verden Amanuensis Terje Rydland Kontor: ITV-021 i IT-bygget vest (Gløshaugen) Epost: terjery@idi.ntnu.no Tlf:

Detaljer

INF1010 Sortering. Marit Nybakken 1. mars 2004

INF1010 Sortering. Marit Nybakken 1. mars 2004 INF1010 Sortering Marit Nybakken marnybak@ifi.uio.no 1. mars 2004 Dette dokumentet skal tas med en klype salt og forfatter sier fra seg alt ansvar. Dere bør ikke bruke definisjonene i dette dokumentet

Detaljer

Minimum Spenntrær - Kruskal & Prim

Minimum Spenntrær - Kruskal & Prim Minimum Spenntrær - Kruskal & Prim Lars Vidar Magnusson 4.4.2014 Kapittel 23 Kruskal algoritmen Prim algoritmen Kruskal Algoritmen Kruskal algoritmen kan beskrives med følgende punkter. Vi har en en sammenkoblet

Detaljer

En algoritme for permutasjonsgenerering

En algoritme for permutasjonsgenerering Innledning La oss tenke oss at vi har en grunnskole-klasse på 25 elever der enkelte av elever er uvenner med hverandre. Hvis uvenner sitter nær hverandre blir det bråk og slåssing. Er det mulig å plassere

Detaljer

NITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 2013

NITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 2013 NITH PG4200 Algoritmer og datastrukturer Løsningsforslag Eksamen 4.juni 20 ette løsningsforslaget er til tider mer detaljert enn det man vil forvente av en eksamensbesvarelse. et er altså ikke et eksempel

Detaljer

Rekursiv programmering

Rekursiv programmering Rekursiv programmering Babushka-dukker En russisk Babushkadukke er en sekvens av like dukker inne i hverandre, som kan åpnes Hver gang en dukke åpnes er det en mindre utgave av dukken inni, inntil man

Detaljer

Avsluttende eksamen i IT1105/TDT4120 Algoritmer og datastrukturer

Avsluttende eksamen i IT1105/TDT4120 Algoritmer og datastrukturer IT1105/TDT4120 2007 06 12 1/6 Avsluttende eksamen i IT1105/TDT4120 Algoritmer og datastrukturer Eksamensdato Torsdag 6. desember Eksamenstid 1500 1900 Sensurdato Torsdag 10. januar Språk/målform Bokmål

Detaljer

LO118D Forelesning 6 (DM)

LO118D Forelesning 6 (DM) LO118D Forelesning 6 (DM) Rekurrensrelasjoner 10.09.2007 1 Rekurrensrelasjoner Rekurrensrelasjoner En rekurrensrelasjon definerer det n-te elementet i en følge i forhold til de foregående elementene. Følgen

Detaljer

Algoritmeanalyse. (og litt om datastrukturer)

Algoritmeanalyse. (og litt om datastrukturer) Algoritmeanalyse (og litt om datastrukturer) Datastrukturer definisjon En datastruktur er den måten en samling data er organisert på. Datastrukturen kan være ordnet (sortert på en eller annen måte) eller

Detaljer

Søkeproblemet. Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke?

Søkeproblemet. Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke? Søking Søkeproblemet Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke? Effektiviteten til søkealgoritmer avhenger av: Om datastrukturen

Detaljer

Gauss-Jordan eliminasjon; redusert echelonform. Forelesning, TMA4110 Fredag 18/9. Reduserte echelonmatriser. Reduserte echelonmatriser (forts.

Gauss-Jordan eliminasjon; redusert echelonform. Forelesning, TMA4110 Fredag 18/9. Reduserte echelonmatriser. Reduserte echelonmatriser (forts. Gauss-Jordan eliminasjon; redusert echelonform Forelesning, TMA4110 Fredag 18/9 Martin Wanvik, IMF MartinWanvik@mathntnuno En matrise vil normalt være radekvivalent med flere echelonmatriser; med andre

Detaljer

ITF20006 Algoritmer og datastrukturer Oppgavesett 7

ITF20006 Algoritmer og datastrukturer Oppgavesett 7 ITF Algoritmer og datastrukturer Oppgavesett 7 Av Thomas Gabrielsen Eksamen Oppgave. ) Det tar konstant tid å hente et gitt element fra en tabell uavhengig av dens størrelse, noe som med O-notasjon kan

Detaljer

PG 4200 Algoritmer og datastrukturer Innlevering 1. Frist: 2.februar kl 21.00

PG 4200 Algoritmer og datastrukturer Innlevering 1. Frist: 2.februar kl 21.00 PG 4200 Algoritmer og datastrukturer Innlevering 1 Frist: 2.februar kl 21.00 Utdelt materiale: Alle filer som nevnes er inneholdt i zip-filen innlevering1.zip. Innlevering: Besvarelsen skal være i form

Detaljer

Hvor raskt klarer vi å sortere?

Hvor raskt klarer vi å sortere? Sortering Sorteringsproblemet Gitt en array med n elementer som kan sammenlignes med hverandre: Finn en ordning (eller permutasjon) av elementene slik at de står i stigende (evt. avtagende) rekkefølge

Detaljer

Algdat-ninja på 60 minutter: Et galskapsprosjekt. Magnus Lie Hetland

Algdat-ninja på 60 minutter: Et galskapsprosjekt. Magnus Lie Hetland Algdat-ninja på 60 minutter: Et galskapsprosjekt Magnus Lie Hetland 15. november, 2002 Advarsel: Tettpakkede og overfladiske foiler forut! 1 Algtdat i 6 punkter 1. Grunnbegreper og basisverktøy 2. Rekursjon

Detaljer

Algoritmer og datastrukturer Løsningsforslag

Algoritmer og datastrukturer Løsningsforslag 1 Algoritmer og datastrukturer Løsningsforslag Eksamen 29. november 2011 Oppgave 1A Verdien til variabelen m blir lik posisjonen til den «minste»verdien i tabellen, dvs. bokstaven A, og det blir 6. Oppgave

Detaljer

Pensum: Starting out with Python

Pensum: Starting out with Python 1 Kunnskap for en bedre verden TDT4110 Informasjonsteknologi grunnkurs: Python: Repetisjon Matriser (2D-lister) try except rekursjon skrive pent til skjerm Terje Rydland - IDI/NTNU 2 Læringsmål og pensum

Detaljer

Lineær Algebra og Vektorrom. Eivind Eriksen. Høgskolen i Oslo, Avdeling for Ingeniørutdanning

Lineær Algebra og Vektorrom. Eivind Eriksen. Høgskolen i Oslo, Avdeling for Ingeniørutdanning Lineær Algebra og Vektorrom Eivind Eriksen Høgskolen i Oslo, Avdeling for Ingeniørutdanning c Eivind Eriksen 2005. Innhold Kapittel 1. Lineære likningssystemer 1 1.1. Lineære likningssystemer i to variable

Detaljer

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.8

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.8 Delkapittel 1.8 Algoritmeanalyse Side 1 av 12 Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.8 1.8 Algoritmeanalyse 1.8.1 En algoritmes arbeidsmengde I Delkapittel 1.1 ble det definert og diskutert

Detaljer

Euklids algoritmen. p t 2. 2 p t n og b = p s 1. p min(t 2,s 2 )

Euklids algoritmen. p t 2. 2 p t n og b = p s 1. p min(t 2,s 2 ) For å finne største felles divisor (gcd) kan vi begrense oss til N, sidenfor alle a, b Z, harvi gcd(a, b) =gcd( a, b ). I prinsippet, dersom vi vet at a = p t 1 kan vi se at 1 p t 2 2 p t n og b = p s

Detaljer

Mattespill Nybegynner Python PDF

Mattespill Nybegynner Python PDF Mattespill Nybegynner Python PDF Introduksjon I denne leksjonen vil vi se litt nærmere på hvordan Python jobber med tall, og vi vil lage et enkelt mattespill. Vi vil også se hvordan vi kan gjøre ting tilfeldige.

Detaljer

PG4200 Algoritmer og datastrukturer Forelesning 2

PG4200 Algoritmer og datastrukturer Forelesning 2 PG4200 Algoritmer og datastrukturer Forelesning 2 Lars Sydnes, NITH 15. januar 2014 I. Forrige gang Praktisk eksempel: Live-koding II. Innlevering Innlevering 1 2.februar Offentliggjøring: 22.januar Innhold:

Detaljer

Forelesning 6 torsdag den 4. september

Forelesning 6 torsdag den 4. september Forelesning 6 torsdag den 4. september 1.13 Varianter av induksjon Merknad 1.13.1. Det finnes mange varianter av induksjon. Noen av disse kalles noen ganger sterk induksjon, men vi skal ikke benytte denne

Detaljer

deeegimnoorrrsstt Sjette forelesning

deeegimnoorrrsstt Sjette forelesning deeegimnoorrrsstt Sjette forelesning 1 2 Bellman-Ford BFS/DFS Binære søketrær Binærsøk Bubblesort Bucket sort Counting sort Dijkstra DAGshortest-path Edmonds- Karp Floyd- Warshall Hashing Heapsort Huffmankoding

Detaljer

TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis. Professor Alf Inge Wang

TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis. Professor Alf Inge Wang 1 TDT4110 Informasjonsteknologi grunnkurs: Tema: Algoritmer i praksis Professor Alf Inge Wang 2 Læringsmål og pensum Mål Lære å forstå og kunne programmere algoritmer for søk og sortering. Lære å forstå

Detaljer

Elementær Matriseteori

Elementær Matriseteori Elementær Matriseteori Magnus B. Botnan NTNU 3. august, 2015 Kursinfo - Foreleser: Magnus B. Botnan http://www.math.ntnu.no/~botnan/ - Hjemmeside: https: //wiki.math.ntnu.no/tma4110/2015h/forkurs/start

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 2: Kontrollstrukturer, tallsystemer, basis Roger Antonsen Institutt for informatikk, Universitetet i Oslo 14. januar 2009 (Sist oppdatert: 2009-01-14 16:45) Kapittel

Detaljer

SIF8010 ALGORITMER OG DATASTRUKTURER

SIF8010 ALGORITMER OG DATASTRUKTURER SIF8010 ALGORITMER OG DATASTRUKTURER KONTINUASJONSEKSAMEN, 1999; LØSNINGSFORSLAG Oppgave 1 (12%) Anta at du skal lage et støtteprogram som umiddelbart skal varsle om at et ord blir skrevet feil under inntasting

Detaljer

ALGORITMER OG DATASTRUKTURER

ALGORITMER OG DATASTRUKTURER Stud. nr: Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap LØSNINGSFORSLAG,

Detaljer

Rekurrens. MAT1030 Diskret matematikk. Rekurrens. Rekurrens. Eksempel. Forelesning 16: Rekurrenslikninger. Dag Normann

Rekurrens. MAT1030 Diskret matematikk. Rekurrens. Rekurrens. Eksempel. Forelesning 16: Rekurrenslikninger. Dag Normann MAT1030 Diskret matematikk Forelesning 16: likninger Dag Normann Matematisk Institutt, Universitetet i Oslo INGEN PLENUMSREGNING 6/3 og 7/3 5. mars 008 MAT1030 Diskret matematikk 5. mars 008 Mandag ga

Detaljer

EKSAMEN med løsningsforslag

EKSAMEN med løsningsforslag EKSAMEN med løsningsforslag Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer:

Detaljer

Diofantiske likninger Peer Andersen

Diofantiske likninger Peer Andersen Diofantiske likninger av Peer Andersen Peer Andersen 2013 Innhold Når en diofantisk likning har løsning... 3 Generell løsning av den diofantiske likningen... 4 Løsningsmetode når vi kjenner en spesiell

Detaljer

Øving 2 Matrisealgebra

Øving 2 Matrisealgebra Øving Matrisealgebra Gå til menyen Edit Preferences... og sett Format type of new output cells til TraditionalForm hvis det ikke allerede er gjort. Start med to eksempelmatriser med samme dimensjon: In[]:=

Detaljer

Matriser En matrise er en rektangulær oppstilling av tall og betegnes med en stor bokstav, f.eks. A, B, C,.. Eksempler:

Matriser En matrise er en rektangulær oppstilling av tall og betegnes med en stor bokstav, f.eks. A, B, C,.. Eksempler: Matriser En matrise er en rektangulær oppstilling av tall og betegnes med en stor bokstav, f.eks. A, B, C,.. Eksempler: Tallene i en matrise kalles matriseelementer eller bare elementer. En matrise har

Detaljer

Algoritme-Analyse. Asymptotisk ytelse. Sammenligning av kjøretid. Konstanter mot n. Algoritme-kompeksitet. Hva er størrelsen (n) av et problem?

Algoritme-Analyse. Asymptotisk ytelse. Sammenligning av kjøretid. Konstanter mot n. Algoritme-kompeksitet. Hva er størrelsen (n) av et problem? Hva er størrelsen (n) av et proble? Algorite-Analyse Algoriter og Datastrukturer Antall linjer i et nettverk Antall tegn i en tekst Antall tall so skal sorteres Antall poster det skal søkes blant Antall

Detaljer

Lineære likningssystemer og matriser

Lineære likningssystemer og matriser Kapittel 3 Lineære likningssystemer og matriser I dette kapittelet skal vi sette sammen Kapittel 1 og 2. 3.1 Den utvidede matrisen til et likningssystem Vi starter med et lineært likningssystem med m likninger

Detaljer

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert.

Dijkstras algoritme. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert. Her finnes det også (minst) en riktig rekkefølge for Relax, men den må vi oppdage litt etter hvert. Tenk vann som sprer seg i rør: Vi behandler krysningspunktene i den rekkefølgen de fylles. Det må gi

Detaljer

Kap.8 Sortering og søking sist oppdatert 16.03

Kap.8 Sortering og søking sist oppdatert 16.03 Kap.8 Sortering og søking sist oppdatert 16.03 Del 1 Søking - lineær søking m/u sorterte elementer - binærsøking - analyse Del 2 Sortering - gamle sorteringsmetoder fra i høst - nye -analyse Copyright

Detaljer

Repetisjon: om avsn og kap. 3 i Lay

Repetisjon: om avsn og kap. 3 i Lay Repetisjon: om avsn. 2.1-2.4 og kap. 3 i Lay Matrisemultiplikasjon La A = [a ij ] være en m n matrise og B = [b kl ] være en n p matrise. ] Skriv B = [b 1 b 2 b p der b j -ene er i R n for hver j. Produktet

Detaljer

I dette kapittelet skal vi studerer noen matematiske objekter som kalles matriser. Disse kan blant annet brukes for å løse lineære likningssystemer.

I dette kapittelet skal vi studerer noen matematiske objekter som kalles matriser. Disse kan blant annet brukes for å løse lineære likningssystemer. Kapittel 2 Matriser I dette kapittelet skal vi studerer noen matematiske objekter som kalles matriser. Disse kan blant annet brukes for å løse lineære likningssystemer. 2.1 Definisjoner og regneoperasjoner

Detaljer

Norsk informatikkolympiade 2012 2013 1. runde

Norsk informatikkolympiade 2012 2013 1. runde Norsk informatikkolympiade 2012 2013 1. runde Uke 45, 2012 Tid: 90 minutter Tillatte hjelpemidler: Kun skrivesaker. Det er ikke tillatt med kalkulator eller trykte eller håndskrevne hjelpemidler. Instruksjoner:

Detaljer

ALGORITMER OG DATASTRUKTURER

ALGORITMER OG DATASTRUKTURER Stud. nr: Side 1 av 1 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE

Detaljer

Ikke lineære likninger

Ikke lineære likninger Ikke lineære likninger Opp til nå har vi studert lineære likninger og lineære likningsystemer. 1/19 Ax = b Ax b = 0. I en dimensjon, lineære likninger kan alltid løses ved hjelp av formler: ax + b = 0

Detaljer

Algdat Oppsummering, eksamen-ting. Jim Frode Hoff

Algdat Oppsummering, eksamen-ting. Jim Frode Hoff Algdat Oppsummering, eksamen-ting Jim Frode Hoff November 18, 2012 1 Definisjoner 1.1 Ordliste Problem Probleminstans Iterasjon Asymtpoisk notasjon O(x) kjøretid Ω(x) kjøretid Θ(x) kjøretid T (x) kjøretid

Detaljer

ALGORITMER OG DATASTRUKTURER

ALGORITMER OG DATASTRUKTURER Stud. nr: Side 1 av 6 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap AVSLUTTENDE

Detaljer

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3 Delkapittel 1.3 Ordnede tabeller Side 1 av 70 Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3 1.3 Ordnede tabeller 1.3.1 Permutasjoner En samling verdier kan settes opp i en rekkefølge. Hver

Detaljer

Plenumsregning 9. Diverse ukeoppgaver. Roger Antonsen april Oppgaver fra forelesningene. Oppgave (fra forelesningen 10/3).

Plenumsregning 9. Diverse ukeoppgaver. Roger Antonsen april Oppgaver fra forelesningene. Oppgave (fra forelesningen 10/3). Plenumsregning 9 Diverse ukeoppgaver Roger Antonsen - 10. april 2008 Oppgaver fra forelesningene Oppgave (fra forelesningen 10/3). a) Ved å bruke den rekursive definisjonen av PL, vis hvordan vi skritt

Detaljer

NIO 1. runde eksempeloppgaver

NIO 1. runde eksempeloppgaver NIO 1. runde eksempeloppgaver Oppgave 1 (dersom du ikke klarer en oppgave, bare gå videre vanskelighetsgraden er varierende) Hva må til for at hele det følgende uttrykket skal bli sant? NOT(a OR (b AND

Detaljer

Dagens plan. INF Algoritmer og datastrukturer. Koding av tegn. Huffman-koding

Dagens plan. INF Algoritmer og datastrukturer. Koding av tegn. Huffman-koding Grafer Dagens plan INF2220 - Algoritmer og datastrukturer HØSTEN 2007 Institutt for informatikk, Universitetet i Oslo Avsluttende om grådige algoritmer (kap. 10.1.2) Dynamisk programmering Floyds algoritme

Detaljer

Definisjon av binært søketre

Definisjon av binært søketre Binære søketrær Definisjon av binært søketre For alle nodene i et binært søketre gjelder: Alle verdiene i nodens venstre subtre er mindre enn verdien i noden Alle verdiene i nodens høyre subtre er større

Detaljer

Repetisjon: høydepunkter fra første del av MA1301-tallteori.

Repetisjon: høydepunkter fra første del av MA1301-tallteori. Repetisjon: høydepunkter fra første del av MA1301-tallteori. Matematisk induksjon Binomialteoremet Divisjonsalgoritmen Euklids algoritme Lineære diofantiske ligninger Aritmetikkens fundamentalteorem Euklid:

Detaljer

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays

Oversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson

Detaljer

NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer

NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer Oppgavesettet består av 8 (åtte) sider. NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer Tillatte hjelpemidler: Ingen Side 1 av 8 Varighet: 3 timer Dato: 4.juni 2013 Fagansvarlig:

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 14. desember 2015 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 6 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

MA1301 Tallteori Høsten 2014

MA1301 Tallteori Høsten 2014 MA1301 Tallteori Høsten 014 Richard Williamson 1. august 015 Innhold Forord 7 1 Induksjon og rekursjon 9 1.1 Naturlige tall og heltall............................ 9 1. Bevis.......................................

Detaljer

Repetisjon: Om avsn og kap. 3 i Lay

Repetisjon: Om avsn og kap. 3 i Lay Repetisjon: Om avsn. 2.1-2.4 og kap. 3 i Lay Matrisemultiplikasjon. La A = [a ij ] være en m n matrise og B = [b kl ] være en n p matrise. ] Skriv B = [b 1 b 2 b p. Produktet AB er m p matrisen definert

Detaljer

Korteste Vei II. Lars Vidar Magnusson 11.4.2014. Kapittel 24 Bellman-Ford algoritmen Dijkstra algoritmen

Korteste Vei II. Lars Vidar Magnusson 11.4.2014. Kapittel 24 Bellman-Ford algoritmen Dijkstra algoritmen Korteste Vei II Lars Vidar Magnusson 11.4.2014 Kapittel 24 Bellman-Ford algoritmen Dijkstra algoritmen Bellman-Ford Algoritmen Bellman-Ford er en single-source korteste vei algoritme. Den tillater negative

Detaljer

Oppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b

Oppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b Oppgave 1 1 a INF1020 Algoritmer og datastrukturer Forelesning 14: Gjennomgang av eksamen vår 2001 oppgave 1,2,4 Arild Waaler Institutt for informatikk, Universitetet i Oslo Oppgave 1 a Programmer en ikke-rekursiv

Detaljer