Norges Informasjonsteknologiske Høgskole

Størrelse: px
Begynne med side:

Download "Norges Informasjonsteknologiske Høgskole"

Transkript

1 Oppgavesettet består av 13 (mange) sider. Norges Informasjonsteknologiske Høgskole PG4200 Algoritmer og datastrukturer Side 1 av 13 Tillatte hjelpemidler: Ingen Varighet: 3 timer Dato: 4. juni 2014 Fagansvarlig: Lars Sydnes lars.sydnes@nith.no Oppgavesettet består av 5 oppgaver. Husk å lese oppgavene nøye. En god begrunnelse av et dårlig svar er ikke å forakte. Alle punktene vektes likt. Løsningsforslag Obs: Dette er et utbygd løsningsforslag. D.v.s at det kan forekomme feil, og at løsningene er mer omfattende enn det som kreves av studentene på eksamen. Oppgave 1 a) Bruk O-notasjon til å angi ordenen til de følgende vekstfunksjonene uten å begrunne svaret. (i) f(n) = n n (ii) g(n) = (n + 1) log n + 4n (i) f(n) har orden O(2 n ). (ii) g(n) har orden O(n log n). b) Estimer hvordan kjøretiden til funksjonene f og g i kodesnutten nedenfor avhenger av n. Svaret skal begrunnes og uttrykkes med O-notasjon. 1 void f(int n){ 2 for(int i = 0; i < n; i+=3) 3 dosomething(i); void g(int n){ 7 int i = 1; 8 while(i < n){ 9 f(i); 10 i*=2; void dosomething(int n){ 15 // Something O(1) 16

2 Side 2 av 13 Behandling av funksjonen f: Metoden dosomething oppgis å ha kjøretid O(1). Dermed har instruksjonen i linje 3 konstant kjøretid. Løkken definert i linje 2 går gjennom inntil n/3 iterasjoner. f(n) har følgelig kjøretid av orden O(n). Grov behandling av funksjonen g: Siden i < n, vet vi fra forrige oppgave at instruksjonen i linje 9 har kjøretid av orden O(n). I løpet av while-løkkas iterasjoner er i innom verdiene 1, 2, 4,..., 2 k, der k er største tallet slik at 2 k < n, altså det største tallet mindre enn log 2 n. Løkka går følgelig gjennom inntil log 2 n iterasjoner. Siden hver iterasjon har kjøretid av orden O(n), vil hele løkka ha kjøretid av orden O(n log n) Kommentar: Dette svaret er et gyldig worst-case estimat; vi er helt sikre på at worst-case-kjøretiden ikke vokser raskere enn n log n. Svakheten er at det er unødvendig grovt. I neste løsningsvariant kan du se et sterkere estimat. Dette svaret gir derfor kun halv uttelling. Bedre behandling av funksjonen g: Ettersom f(i) har kjøretid O(i), vet vi at det finnes en konstant K slik at kjøretiden i linje 9 er mindre enn K i. I løkka gjennomløper i verdiene 1, 2,... 2 k < n. Den totale kjøretiden blir dermed mindre enn K 1+ +K 2 k = K( k ) = K(2 k+1 1) < 2K 2 k < 2K n. Utifra dette konkluderer vi med at g(n) har kjøretid av orden O(n)

3 Side 3 av 13 Oppgave 2 a) Forestill deg et binært søketre uten balanseringsmekanisme som kun aksepterer ett eksemplar av hvert objekt. Lag en skisse av treet etter innsetting av følgende sekvens: 3, 1, 4, 1, 5, 9, 2, b) Hva er fordelen med balanserte trær? De fleste tre-operasjonene har kjøretid som avhenger av høyden i treet. Ett eksempel på dette er søk, som har kjøretid av orden O(h) der h er treets høyde. Lav høyde gir derfor raske operasjoner. Høyden til treet avhenger av balansen. Balanserte trær har lav høyde. I veldig ubalanserte trær kan høyden være omtrent like stor som antallet elementer i treet, f.eks hvis alle noder (unntatt roten) er venstrebarn. c) Forklar hva Red-Black-trær er. Red-Black-trær (RB-trær) har en mekanisme for å opprettholde en rimelig balanse: Hver gang treet forandres undersøkes det om treet forstatt er rimelig balansert. Dersom dette ikke er tilfelle utføres det venstre- og høyre-rotasjoner om strategisk valgte noder, med sikte på å gjenopprette en rimelig balanse.

4 Side 4 av 13 I RB-trær overvåkes balansen ved at nodene tildeles farge, enten rød eller svart. Denne fargeleggingen brukes til å overvåke balansen i treet. Et viktig poeng er at overvåkingen og balansering har kjøretid av orden O(h), så selv om dette blir en ekstra-kostnad i forbindelse med modifikasjon av treet, så blir ikke ordenen til kjøretiden forverret. På den annen side vil balanseringen medføre at høyden blir lavere. Dermed vil, i alle fall for de fleste store trær som ellers ville ha blitt veldig ubalanserte, balanseringen forbedre kjøretiden. Med RB-balansering av binære trær er kjøretiden for de viktigste treoperasjonen av orden O(log(n)), der n er antall elementer i treet. Kommentar: Her har vi først og fremst drøftet nytten av RB-trær. Vi har ikke drøftet i detalj hvordan RB-trær overvåker høyden, nemlig ved å følge med på at alle veier mellom roten og bladene inneholder nøyaktig like mange svarte noder samtidig som ingen røde noder får ha røde barn. Dette medfører at den lengste veien ut fra roten er inntil dobbelt så lang som den korteste. En konsekvens av dette er at høyden aldri er mer enn det dobbelte av den minimale høyden. Dette medfører at den maksimale høyden er av orden O(log n), der n er antallet elementer i treet. d) Når bruker vi køer i forbindelse med traversering av trær og grafer? Når bruker vi stakker til det samme? Nodene i trær og grafer har i utgangpunktet ingen naturlig rekkefølge. Traversering innebærer at vi besøker nodene i en bestemt rekkefølge. Når vi besøker en node med mange barn, kan vi umiddelbart gå videre til høyst ett av disse barna. De barna vi ikke besøker umiddelbart må registreres i en huskeliste, slik at vi kan komme tilbake til dem senere. Hvordan vi bruker denne huskelisten vil avgjøre traverseringsrekkefølgen. Dersom vi ønsker bredde først-traversering (i trær også kalt level order), må vi bruke listen som en kø, altså etter first in, first out-prinsippet. Dersom vi ønsker dybde først-traversering, må vi bruke listen som en stakk, d.v.s etter first in, first out-prinsippet. (Når vi har diskutert binære trær, har vi diskutert tre ulike varianter av dybde førsttraversering, nemlig preorder, postorder, inorder. Vi kan få frem alle disse variantene ved å bruke en stakk. Spørsmålet er i hvilken rekkefølge vi besøker noden og dens to barn. )

5 Side 5 av 13 e) Skriv en ikke-rekursiv metode for sekvensielt søk i en lenket liste der nodene tilhører klassen Node: class Node<T> { T data; Node<T> next; boolean contains(t elem) { Node<T> current = head; while (current!= null) { if (elem.equals(current.data)) return true; else current = current.next; return false; f) Skriv en rekursiv metode for sekvensielt søk i en lenket liste der nodene tilhører klassen Node definert i forrige punkt. boolean containsrecursive(t elem){ return containsrecursive(elem,head); boolean containsrecursive(t elem, Node<T> node) { if (node == null) // Stoppbetingelse I return false; else if (elem.equals(node.data)) // Stoppbetingelse II

6 Side 6 av 13 return true; else // Rekursivt steg return containsrecursive(elem, node.next); g) Forklar hva det betyr at java.util.hashset benytter strategien chaining? I hvilken situasjon forekommer rehashing av hash-tabeller? I hash-tabeller forekommer det at to ulike objekter konkurrerer om samme indeks. Dette kan løses ved å legge ulike elementer som hører til på samme indeks i lenkede lister, en liste for hver indeks. Denne strategien kalles chaining. Når en hash-tabell er i ferd med å bli for full må den flyttes til et nytt minneområde med større plass. Denne prosessen kalles rehashing. Hva det vil si at en hash-tabell er i ferd med å bli for fullt varierer fra implementasjon til implementasjon. Det er ønskelig med mange ledige plasser i hash-tabeller, siden det gir færre konflikter og dermed raskere lagring og søk. Derfor er det vanlig å utføre rehashing når antallet elementer overstiger en viss andel av antallet indekser i tabellen, f.eks 75%. (Dette tallet er hentet fra java.util.hashmap).

7 Side 7 av 13 Oppgave 3 Tabell 1 nedenfor illustrerer to ulike sorteringsalgoritmer. De to sorteringsalgoritmene som er brukt befinner seg i denne oversikten: (i) Quick sort (ii) Insertion sort (iii) Bubble sort (iv) Selection sort (v) Merge sort (b) (a) Tabell 1: Illustrasjon av to ulike sorteringsmetoder. a) Hvilken av sorteringsalgoritmene (i-v) er illustrert i tabell 1a? Hvilken av sorteringsalgoritmene (i-v) er illustrert i tabell 1b? Du behøver ikke å begrunne svaret. Tabell 1a viser algoritme (iv), selection sort. Tabell 1b viser algoritme (v), merge sort. På neste side ser du grafiske fremstillinger av måling av kjøretiden til tre sorteringsalgoritmer anvendt på sorterte og usorterte lister. De tre algoritmene er: (i) Insertion sort.

8 Side 8 av 13 (ii) Selection sort. (iii) En algoritme hentet fra java.util.arrays som hovedsaklig bygger på Quick sort. kjøretid (millisekunder) Metode A Antall elementer Tilfeldige data Sorterte data Metode B kjøretid (millisekunder) Antall elementer Tilfeldige data Sorterte data Metode C kjøretid (millisekunder) Antall elementer Tilfeldige data Sorterte data b) Angi hvilken algoritme (i, ii, iii) som er brukt i hver av figurene (A, B, C). Begrunn svaret i to av tilfellene.

9 Side 9 av 13 Oppgave 4 Metode A er Quick sort. Metode B er Selection sort. Metode C er Insertion sort. Metodene B og C er opplag mye tregere enn metode A på usorterte data. På øyemål ser det ut til at kjøretiden for metode A vokser omtrent som n log n (Det virker i alle fall opplagt at vi befinner oss mellom n og n 2.) Utifra dette kan man være rimelig sikker på at metode A er Quick sort. Metode C er langt raskere når dataene er forhåndssortert. Kjøretiden til Insertion sort vokser lineært når dataene er forhåndssortert. Dermed kan vi være rimelig sikre på at Metode C er Insertion sort. Det virker som om kjøretiden til metode C er uavhengig av om dataene er sortert eller ei. Det rimer godt med Selection sort, som i hvert steg utfører sekvensielt søk etter det gjenværende minste elementet. Algoritmen drar altså ikke nytte av at dataene allerede er sortert. Kommentar: Et artig poeng vi ser her er at Selection sort har veldig forutsigbar kjøretid, mens kjøretiden til Insertion sort er ganske uforutsigbar, og til tider mye raskere enn selection sort. På den annen side later det til at worst case-kjøretid for Insertion sort er i nærheten av det dobbelte av Selection sort i denne testen. import java.util.priorityqueue; /*...*/ public static <T extends Comparable<T>> void metode(t[] data){ int n = data.length; PriorityQueue<T> pq = new PriorityQueue<T>(); for (int i = 0; i < n; i++) pq.offer(data[i]); for (int i = 0; i < n; i++) data[i] = pq.poll(); Hva kan vi bruke metoden metode ovenfor til? Estimer hvordan kjøretiden (T ) til metoden metode avhenger av antall elementer (n). Begrunnelsen skal være forankret i koden ovenfor samt det du vet om egenskapene til PriorityQueue.

10 Side 10 av 13 Metoden metode kan brukes til å sortere lister. En prioritetskø leverer til enhver tid ut det minste elementet tilgjengeliig i køen. Den andre for-løkken tar altså elementene ut av køen i sortert rekkefølge. PriorityQueue er implementert som en heap. Metodene offer og poll for modifisering av heapen har derfor kjøretid av orden O(log n). Tidsbruken i metode er dominert av de to for-løkkene, som medfører til sammen 2n slike modifiseringsoperasjoner. Den totale kjøretiden er dermed av orden O(n log n). Kommentar: Det er ikke helt feil å kalle denne sorteringsmetoden Heap sort. Et argument mot dette er at Heap sort gjerne foregår in place. Oppgave 5 Studentene i et studieprogram ved NITH skal arrangere semesteravslutningsfest. Studentene vil gjerne sitte rundt ett langbord, men dessverre ligger mange studentene i fiendskap med hverandre, og arrangørene har derfor kartlagt hvem som er fiender med hvem. Resultatet er fremstilt i denne tabellen: Person Eva Ove Ulf Are Ada Ole Liv Fiender Ole, Are Ada, Liv Are, Ada, Ole, Liv Eva, Ulf, Ada Ove, Liv, Ulf, Are Eva, Ulf Ove, Ulf, Ada Vi skal her se på hvordan dataene i denne tabellen kan presenteres som en graf der nodene representerer personer og kantene representerer fiendskap mellom personer. La oss kalle dette fiendskapsgrafen. Vi kan også definere en vennskapsgraf, der kantene representerer ikke-fiendtlige relasjoner. a) Skisser fiendskapsgrafen og vennskapsgrafen til denne studentgruppen.

11 Side 11 av 13 Fiender: Eva Ove Ulf Liv Are Ole Ada Venner: Eva Ove Ulf Liv Are Ole Ada Eva og Are ønsker å slutte fred, men ønsker kun å kommunisere gjennom venner, venners venner og så videre. b) Hjelp Eva og Are ved å beskrive en algoritme de kan bruke til å finne en kortest mulig kjede av venner de kan kommunisere gjennom. Problemet til Eva og Are kan formuleres innenfor graf-språket: Finn den korteste veien fra Eva til Are i vennskapsgrafen. En slik vei kan vi finne ved å bruke et bredde først-søk i grafen. Metoden kan betraktes som en forenkling av Dijkstras algoritme. Vi kan gjøre denne forenklingen siden det er en uvektet graf. Fremgangsmåten er som følger: Bygg alle mulige veier i grafen som starter hos Eva. Pass på at du hele tiden arbeider videre med de veiene som er kortest. Når du kommer over en vei som ender hos Are, vil denne veien være en løsning av problemet. Siden alle kantene er like lange, kan vi organisere veiene i en kø; de korteste veiene vil da alltid ligge først i køen. Dersom man vil gi en middels formell beskrivelse av algoritmen, kan man gjerne gjøre det slik.

12 Side 12 av 13 //Input: A, B //Data: QUEUE QUEUE.offer(newPathOfZeroLength(A)); while (QUEUE.size() > 0) { currentpath = QUEUE.poll(); currentnode = currentpath.target; for (Edge edge : currentnode.edges){ newpath = concat(currentpath,edge) if (newpath.target.equals(b)) return newpath; else QUEUE.offer(newPath) Her er metodene concat og newpathofzerolength udefinert. Det er også uklart hvordan de ulike objektene her er implementert, men denne kodesnutten kan i alle fall gi et bilde av hvordan vi kan håndtere dette. c) Hjelp Eva og Are ved å gå gjennom den algoritmen du beskrev i forrige punkt. Få fram de viktigste stegene samt sluttresultatet. Steg 1 Bygg veien med lengde 0 som starter og slutter i Eva. Køen ser nå slik ut: [Eva] Steg 2 Aktuell vei er nå Eva. Vi bygger ut denen veien ved å legge til kantene som går ut fra Eva. Køen ser nå slik ut: [Eva Ove, Eva Ulf, Eva Ada, Eva Liv] Steg 3 Aktuell vei er nå Eva Ove. Vi bygger ut denne veien ved å legge til kanter som går ut fra Ove. Først titter vi på Ove Ulf, som gir en ny vei i køen. Deretter kommer vi til Ove Are. Dette gir oss en vei fra Eva til Are, nemlig Eva Ove Are. Køen ser nå slik ut: [Eva Ulf, Eva Ada, Eva Liv, Eva Ove Ulf]

13 Side 13 av 13 Vi ser altså at Eva og Are kun behøver 1 mellom-mann, og at Ove kan gjøre den nytten. Det finnes én annen vei som er like kort, nemlig den som går via Liv. Ada redder studentfesten ved å lage en algoritme som raskt finner frem til en bordplassering der ingen fiender sitter ved siden av hverandre. Året etter planlegges det en fest der hele NITH skal sitte rundt ett stort langbord i gallerigaten. Ada tilbyr å hindre en fullstendig katastrofe ved å bruke algoritmen sin til å finne fram til en levelig bordplassering. d) Bedøm muligheten for at Ada lykkes også denne gangen. Vi kan se på bordplasseringsproblemet som nok et problem knyttet til vennskapsgrafen: Finn en rundreise i grafen som er innom hver node eksakt én gang, d.v.s en Hamiltonsk rundreise i grafen. Dette viser at Bordplassringsproblemet er NP-hardt (NP-hard), så vi har god grunn til å tro at Adas algoritme ikke har polynomisk kjøretid. Den praktiske konsekvensen av dette er at vi bør forvente at kjøretiden til Adas algoritme antagelig vokser meget raskt. Derfor bør vi ikke regne med at Adas algoritme har praktisk nytte i store grupper. Her kan man gjerne nevne noen flere momenter: Det at bordplasseringsproblemet er NP-hardt medfører at worst casekjøretiden vokser meget raskt. Det kan likevel tenkes at worst case-kjøretid for problemstørrelsen i det store tilfellet er praktisk akseptabel til tross for at kjøretiden vokser raskt (d.v.s. at vi møter veggen først ved enda større problemer), eller at inndataene i det store tilfellet er gunstige, slik at kjøretiden blir akseptabel til tross for at worst-case kjøretid er uakseptabel. Dette kan for eksempel inntreffe dersom det er få uvenner i gruppen. Dersom Ada mot formodning har kommet opp med en polynomisk løsning av bordplasseringsproblemet, så vil det være en stor oppdagelse. En konsekvens av dette ville være at alle problemer i klassen NP kan løses innenfor polynomisk kjøretid. Slutt på oppgavesettet

Norges Informasjonsteknologiske Høgskole

Norges Informasjonsteknologiske Høgskole Oppgavesettet består av 6 (seks) sider. Norges Informasjonsteknologiske Høgskole PG4200 Algoritmer og datastrukturer Side 1 av 6 Tillatte hjelpemidler: Ingen Varighet: 3 timer Dato: 4. juni 2014 Fagansvarlig:

Detaljer

Norges Informasjonsteknologiske Høgskole

Norges Informasjonsteknologiske Høgskole Oppgavesettet består av 6 (seks) sider. Norges Informasjonsteknologiske Høgskole PG4200 Algoritmer og datastrukturer Side 1 av 6 Tillatte hjelpemidler: Ingen Varighet: 3 timer Dato: 6. august 2014 Fagansvarlig:

Detaljer

MED TIDESTIMATER Løsningsforslag

MED TIDESTIMATER Løsningsforslag Oppgavesettet består av 12 (mange) sider. Norges Informasjonsteknologiske Høgskole PG4200 Algoritmer og datastrukturer Side 1 av 12 Tillatte hjelpemidler: Ingen Varighet: 3 timer Dato: 6. august 2014 Fagansvarlig:

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

Løsningsforslag til eksamen i PG4200 Algoritmer og datastrukturer 10. desember 2014

Løsningsforslag til eksamen i PG4200 Algoritmer og datastrukturer 10. desember 2014 Løsningsforslag Dette er et utbygd løsningsforslag. D.v.s at det kan forekomme feil og at løsningene er mer omfattende enn det som kreves av studentene på eksamen. Oppgavesettet består av 5 (fem) sider.

Detaljer

NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer

NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer Oppgavesettet består av 7 (syv) sider. NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer Tillatte hjelpemidler: Ingen Side av 7 Varighet: 3 timer Dato:.august 203 Fagansvarlig:

Detaljer

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

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

Detaljer

Ny/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00

Ny/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00 Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 5. januar 2018 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet

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

PG4200 Algoritmer og datastrukturer Forelesning 7

PG4200 Algoritmer og datastrukturer Forelesning 7 PG4200 Algoritmer og datastrukturer Forelesning 7 Lars Sydnes, NITH 19. mars 2014 I. TERMINOLOGI FOR TRÆR TRÆR Lister: Lineære Trær: Hierarkiske Modell / Språk: Bestanddeler: Noder, forbindelser. Forbindelse

Detaljer

EKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00

EKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00 EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 28. mai 2018 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet

Detaljer

Løsningsforslag. Oppgave 1.1. Oppgave 1.2

Løsningsforslag. Oppgave 1.1. Oppgave 1.2 Løsningsforslag Oppgave 1.1 7 4 10 2 5 9 12 1 3 6 8 11 14 13 Oppgave 1.2 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 Oppgave 1.3 Rekursiv løsning: public Node settinn(person ny, Node rot) if (rot == null) return

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

Oppgave 1. Sekvenser (20%)

Oppgave 1. Sekvenser (20%) Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Eksamen i emnet I 20 - Algoritmer, datastrukturer og programmering Mandag 2.Mai 200, kl. 09-5. Ingen hjelpemidler tillatt. Oppgavesettet

Detaljer

PG4200 Algoritmer og datastrukturer Forelesning 10

PG4200 Algoritmer og datastrukturer Forelesning 10 PG4200 Algoritmer og datastrukturer Forelesning 10 Lars Sydnes, NITH 9. april 2014 NOE Å STUSSE PÅ? Quadratic probing i Hash-tabell: ( ) 2 i + 1 p = p + ( 1) i+1 2 Underforstått forutsetning: Heltallsaritmetikk

Detaljer

Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert 20.03.10 Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes

Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert 20.03.10 Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert 20.03.10 Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes til å løse problemer. Undersøke ulike implementasjoner

Detaljer

PG4200 Algoritmer og datastrukturer Forelesning 12

PG4200 Algoritmer og datastrukturer Forelesning 12 PG4200 Algoritmer og datastrukturer Forelesning 12 Lars Sydnes, NITH 30. april 2014 I. SIST: NOTAT OM HARDE PROBLEMER INNHOLD Håndterlige problemer: Problemer med kjente algoritmer med polynomisk kjøretid

Detaljer

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00

Ny/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00 Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 6. januar 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet

Detaljer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf. 91851949 Eksamensdato 11. august 2014 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode D. Ingen

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

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Lødag 5. juni 2004, kl. 09.00-13.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 3. november 2, kl. 9. - 14. Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.

Detaljer

Kap 9 Tre Sist oppdatert 15.03

Kap 9 Tre Sist oppdatert 15.03 Kap 9 Tre Sist oppdatert 15.03 Definere et tre som en datastruktur. Definere begreper knyttet til tre. Diskutere mulige implementasjoner av tre Analysere implementasjoner av tre som samlinger. Diskutere

Detaljer

Heap og prioritetskø. Marjory the Trash Heap fra Fraggle Rock

Heap og prioritetskø. Marjory the Trash Heap fra Fraggle Rock Heap og prioritetskø Marjory the Trash Heap fra Fraggle Rock Binær 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

Detaljer

EKSAMEN Løsningsforslag. med forbehold om bugs :-)

EKSAMEN Løsningsforslag. med forbehold om bugs :-) 1 EKSAMEN Løsningsforslag med forbehold om bugs :-) Emnekode: ITF20006 000 Dato: 20. mai 2011 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Lørdag 15. desember 2001, kl. 09.00-14.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler.

Detaljer

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00

EKSAMEN. Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 9. mai 2016 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet består

Detaljer

Binære trær: Noen algoritmer og anvendelser

Binære trær: Noen algoritmer og anvendelser Binære trær: Noen algoritmer og anvendelser Algoritmer / anvendelser: Søking i usortert binært tre Telling av antall noder og nivåer i treet Traversering av binære trær Binære uttrykkstrær Kunstig intelligens(?):

Detaljer

Datastrukturer for rask søking

Datastrukturer for rask søking 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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF 2220 Algoritmer og datastrukturer Eksamensdag: 8. desember 2016 Tid for eksamen: 09:00 13:00 (4 timer) Oppgavesettet er på:

Detaljer

PG4200 Algoritmer og datastrukturer forelesning 10. Lars Sydnes 21. november 2014

PG4200 Algoritmer og datastrukturer forelesning 10. Lars Sydnes 21. november 2014 PG4200 Algoritmer og datastrukturer forelesning 10 Lars Sydnes 21. november 2014 I Grafer Grafisk fremstilling av en graf D A B C Ikke-rettet graf Grafisk fremstilling av en graf D A B C Rettet graf Grafisk

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Lødag 5. juni 2004, kl. 09.00-13.00 LØSNINGSFORSLAG 1 Del 1 60% Oppgave 1.1-10% Forklar kort

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

EKSAMEN. Emne: Algoritmer og datastrukturer

EKSAMEN. Emne: Algoritmer og datastrukturer 1 EKSAMEN Emnekode: ITF20006 000 Dato: 19. mai 2010 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Faglærer: Gunnar Misund Oppgavesettet

Detaljer

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden.

EKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden. EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2008 kl 09.00 til kl 13.00 Hjelpemidler: 4 A4-sider (2 ark) med valgfritt innhold Kalkulator Faglærer: Mari-Ann

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 13. desember 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 7 sider. Vedlegg: INF2220 lgoritmer og datastrukturer

Detaljer

EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00

EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00 EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 18. mai 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Kalkulator Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet

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

Algoritmer og Datastrukturer IAI 21899

Algoritmer og Datastrukturer IAI 21899 Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 30. november 2000, kl. 09.00-14.00 LØSNINGSFORSLAG 1 Del 1, Binære søketrær Totalt

Detaljer

PG 4200 Algoritmer og datastrukturer Innlevering 2

PG 4200 Algoritmer og datastrukturer Innlevering 2 PG 4200 Algoritmer og datastrukturer Innlevering 2 Frist: Mandag 21.april 2014 kl 23.55 Utdelt materiale: Se zip-filen innlevering2.zip. Innlevering: Lever en zip-fil som inneholder følgende: PG4200_innlevering_2.pdf:

Detaljer

Eksamen i IN 110, 18. mai 1993 Side 2 Del 1 (15%) Vi skal se på prioritetskøer av heltall, der vi hele tiden er interessert i å få ut den minste verdi

Eksamen i IN 110, 18. mai 1993 Side 2 Del 1 (15%) Vi skal se på prioritetskøer av heltall, der vi hele tiden er interessert i å få ut den minste verdi UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 18. mai 1993 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: IN 110 Algoritmer

Detaljer

Oppgave 3 a. Antagelser i oppgaveteksten. INF1020 Algoritmer og datastrukturer. Oppgave 3. Eksempelgraf

Oppgave 3 a. Antagelser i oppgaveteksten. INF1020 Algoritmer og datastrukturer. Oppgave 3. Eksempelgraf Oppgave 3 3 a IN1020 Algoritmer og datastrukturer orelesning 15: Gjennomgang av eksamen vår 2001 oppgave 3 Arild Waaler Institutt for informatikk, Universitetet i Oslo 11. desember 2006 Oppgave 3 a. Antagelser

Detaljer

Binær heap. En heap er et komplett binært tre:

Binær heap. En heap er et komplett binært tre: Heap Binær 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 så langt til venstre som mulig

Detaljer

Pensum: fra boken (H-03)+ forelesninger

Pensum: fra boken (H-03)+ forelesninger Pensum: fra boken (H-03)+ forelesninger unntatt kursorisk tema KAP. 1 KAP. 2 KAP. 3 JAVA I-110 (ikke gjennomgått) OO + ABSTRAKSJON /GENERISK PROGRAMMERING REKURSJON ALGORITME-TIDSANALYSE; O-NOTASJON KAP.

Detaljer

Pensum: fra boken (H-03)+ forelesninger

Pensum: fra boken (H-03)+ forelesninger Pensum: fra boken (H-03)+ forelesninger unntatt kursorisk tema KAP. 1 KAP. 2 KAP. 3 JAVA I-110 (ikke gjennomgått) OO + ABSTRAKSJON /GENERISK PROGRAMMERING REKURSJON ALGORITME-TIDSANALYSE; O-NOTASJON KAP.

Detaljer

INF2220: Forelesning 2

INF2220: Forelesning 2 INF2220: Forelesning 2 Mer om analyse av algoritmer Analyse av binære søketrær Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) ANALYSE AV ALGORITMER 2 Analyse av tidsforbruk Hvor

Detaljer

Notater til INF2220 Eksamen

Notater til INF2220 Eksamen Notater til INF2220 Eksamen Lars Bjørlykke Kristiansen December 13, 2011 Stor O notasjon Funksjon Navn 1 Konstant log n Logaritmisk n Lineær n log n n 2 Kvadratisk n 3 Kubisk 2 n Eksponensiell n! Trær

Detaljer

Definisjon: Et sortert tre

Definisjon: Et sortert tre Binære søketrær Definisjon: Et sortert tre 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

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel ) INF2220: Forelesning 1 Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel 4.1-4.3 + 4.6) PRAKTISK INFORMASJON 2 Praktisk informasjon Kursansvarlige Ragnhild Kobro Runde (ragnhilk@ifi.uio.no)

Detaljer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf. 91851949 Eksamensdato 11. august 2014 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode D. Ingen

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 5 Implementasjon av lister

PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister Lars Sydnes, NITH 5. februar 2014 I. Implementasjoner Tabell-implementasjon av Stakk Tabellen er den lettest tilgjengelige datastrukturen

Detaljer

Løsnings forslag i java In115, Våren 1998

Løsnings forslag i java In115, Våren 1998 Løsnings forslag i java In115, Våren 1998 Oppgave 1 // Inne i en eller annen klasse private char S[]; private int pardybde; private int n; public void lagalle(int i) if (i==n) bruks(); else /* Sjekker

Detaljer

København 20 Stockholm

København 20 Stockholm UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 26. mai 2001 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg:

Detaljer

EKSAMEN. Emne: Algoritmer og datastrukturer

EKSAMEN. Emne: Algoritmer og datastrukturer 1 EKSAMEN Emnekode: ITF20006 000 Dato: 18. mai 2012 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Faglærer: Gunnar Misund Oppgavesettet

Detaljer

Ekstra ark kan legges ved om nødvendig, men det er meningen at svarene skal få plass i rutene på oppgavearkene. Lange svar teller ikke positivt.

Ekstra ark kan legges ved om nødvendig, men det er meningen at svarene skal få plass i rutene på oppgavearkene. Lange svar teller ikke positivt. Side 1 av 5 Noen viktige punkter: (i) (ii) (iii) (iv) Les hele eksamenssettet nøye før du begynner! Faglærer går normalt én runde gjennom lokalet. Ha evt. spørsmål klare! Skriv svarene dine i svarrutene

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

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

Løsnings forslag i java In115, Våren 1999

Løsnings forslag i java In115, Våren 1999 Løsnings forslag i java In115, Våren 1999 Oppgave 1a Input sekvensen er: 9, 3, 1, 3, 4, 5, 1, 6, 4, 1, 2 Etter sortering av det første, midterste og siste elementet, har vi følgende: 2, 3, 1, 3, 4, 1,

Detaljer

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene.

Oppgavesettet består av 7 sider, inkludert denne forsiden. Kontroll& at oppgaven er komplett før du begynner å besvare spørsmålene. Høgskoleni Østfold EKSAMEN Emnekode: Emnenavn: ITF20006 Algoritmer og datastrukturer Dato: Eksamenstid: 9. mai 2016 9.00 13.00 Hjelpemidler: Faglærer: Alle trykte og skrevne Jan Høiberg Om eksamensoppgaven

Detaljer

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø rodsjo@stud.ntnu.no

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø rodsjo@stud.ntnu.no Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø rodsjo@stud.ntnu.no Dagens tema Grafer Terminologi Representasjon av grafer Bredde først søk (BFS) Dybde først søk (DFS) Hashing Hashfunksjoner,

Detaljer

EKSAMEN. Algoritmer og datastrukturer

EKSAMEN. Algoritmer og datastrukturer EKSAMEN 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: Gunnar Misund

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 og IN 110 Algoritmer og datastrukturer Eksamensdag: 14. mai 1996 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.

Detaljer

Algoritmer og datastrukturer Eksamen

Algoritmer og datastrukturer Eksamen Eksamensoppgave i Algoritmer og datastrukturer ved Høgskolen i Oslo Side 1 av 5 Algoritmer og datastrukturer Eksamen 30.11.2010 Eksamenstid: 5 timer Hjelpemidler: Alle trykte og skrevne + håndholdt kalkulator

Detaljer

Binære søketrær. En ordnet datastruktur med raske oppslag. Sigmund Hansen

Binære søketrær. En ordnet datastruktur med raske oppslag. Sigmund Hansen Binære søketrær En ordnet datastruktur med raske oppslag Sigmund Hansen Lister og trær Rekke (array): 1 2 3 4 Lenket liste (dobbelt-lenket): 1 2 3 4 Binært søketre: 3 1 4 2 Binære

Detaljer

Når Merge sort og Insertion sort samarbeider

Når Merge sort og Insertion sort samarbeider Når Merge sort og Insertion sort samarbeider Lars Sydnes 8. november 2014 1 Innledning Her skal vi undersøke to algoritmer som brukes til å sortere lister, Merge sort og Insertion sort. Det at Merge sort

Detaljer

GRAFER. Korteste vei i en vektet graf uten negative kanter. Korteste vei, en-til-alle, for: Minimale spenntrær

GRAFER. Korteste vei i en vektet graf uten negative kanter. Korteste vei, en-til-alle, for: Minimale spenntrær IN Algoritmer og datastrukturer GRAER IN Algoritmer og datastrukturer Dagens plan: orteste vei, en-til-alle, for: ektet rettet graf uten negative kanter (apittel 9..) (Dijkstras algoritme) ektet rettet

Detaljer

Repetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)!

Repetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)! Repetisjon: Binære søketrær Dagens plan: Rød-svarte trær (kap. 12.2) B-trær (kap. 4.7) bstrakte datatyper (kap. 3.1) takker (kap. 3.3) For enhver node i et binært søketre gjelder: lle verdiene i venstre

Detaljer

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved Dagens plan: Utvidbar hashing (kapittel 5.6) B-trær (kap. 4.7) Abstrakte datatyper (kap. 3.1) Stakker (kap. 3.3) Når internminnet blir for lite En lese-/skriveoperasjon på en harddisk (aksesstid 7-12 millisekunder)

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer IAI 20102 Høgskolen i Østfold Avdeling for informatikk og automatisering Tirsdag 3. desember 2002, kl. 09.00-14.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler.

Detaljer

Et eksempel: Åtterspillet

Et eksempel: Åtterspillet Trær Et eksempel: Åtterspillet To spillere som «trekker» annenhver gang I hvert trekk velges et av tallene 1, 2, 3, men ikke tallet som motspiller valgte i forrige trekk Valgte tall summeres fortløpende

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

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Tlf. 918 51 949 Eksamensdato 12. august, 2014 Eksamenstid (fra til) 0900 1300 Hjelpemiddelkode D.

Detaljer

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid

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

Oppgave 1 LØSNINGSFORSLAG. Eksamen i INF desember Betrakt følgende vektede, urettede graf:

Oppgave 1 LØSNINGSFORSLAG. Eksamen i INF desember Betrakt følgende vektede, urettede graf: INF100 Algoritmer og datastrukturer INF100 Algoritmer og datastrukturer Oppgave 1 LØSNINGSFORSLAG Betrakt følgende vektede, urettede graf: V 1 V Eksamen i INF100 1. desember 004 V V 4 V 4 V V Ragnar Normann

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2015 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2015, forelesning

Detaljer

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær:

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær: TRÆR Vi skal i denne forelesningen se litt på ulike typer trær: Generelle trær (kap. 4.1) Binærtrær (kap. 4.2) Binære søketrær (kap. 4.3) Den siste typen trær vi skal behandle, B-trær (kap. 4.7) kommer

Detaljer

Et eksempel: Åtterspillet

Et eksempel: Åtterspillet Trær Et eksempel: Åtterspillet To spillere som «trekker» annenhver gang I hvert trekk velges et av tallene 1, 2, 3, men ikke tallet som motspiller valgte i forrige trekk Valgte tall summeres fortløpende

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF2220 Algoritmer og datastrukturer Eksamensdag: 16. desember 2013 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider.

Detaljer

Løsnings forslag i java In115, Våren 1996

Løsnings forslag i java In115, Våren 1996 Løsnings forslag i java In115, Våren 1996 Oppgave 1a For å kunne kjøre Warshall-algoritmen, må man ha grafen på nabomatriseform, altså en boolsk matrise B, slik at B[i][j]=true hvis det går en kant fra

Detaljer

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Dagens tema Grafer Terminologi Representasjon av grafer Bredde først søk (BFS) Dybde først søk (DFS) Hashing Hashfunksjoner, hashtabeller Kollisjonshåndtering

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Institutt for informatikk, Universitetet i Oslo Forelesning 6: Grafer II Ingrid Chieh Yu (Ifi, UiO) INF2220 28.09.2016 1 / 30 Dagens plan: Dijkstra fort.

Detaljer

Algoritmer og datastrukturer Løsningsforslag

Algoritmer og datastrukturer Løsningsforslag Algoritmer og datastrukturer Løsningsforslag Eksamen 30. november 2010 Oppgave 1A Et turneringstre for en utslagsturnering med n deltagere blir et komplett binærtre med 2n 1 noder. I vårt tilfelle får

Detaljer

Løsningsforslag til INF110 h2001

Løsningsforslag til INF110 h2001 Løsningsforslag til INF110 h2001 Eksamen i : INF 110 Algoritmer og datastrukturer Eksamensdag : Lørdag 8. desember 2001 Tid for eksamen : 09.00-15.00 Oppgavesettet er på : 5 sider inkludert vedlegget Vedlegg

Detaljer

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid

Detaljer

INF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7)

INF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) INF2220: Forelesning 2 Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) REPETISJON: BINÆRE SØKETRÆR 2 Binære søketrær 8 4 12 2 7 9 15 6 11 13 16 For enhver node i et binært søketre

Detaljer

INF2220: Forelesning 2

INF2220: Forelesning 2 INF2220: Forelesning 2 Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) REPETISJON: BINÆRE SØKETRÆR 2 Binære søketrær 8 4 12 2 7 9 15 6 11 13 16 For enhver node i et binært søketre

Detaljer

Prioritetskøer. Binære heaper Venstrevridde heaper (Leftist) Binomialheaper Fibonacciheaper

Prioritetskøer. Binære heaper Venstrevridde heaper (Leftist) Binomialheaper Fibonacciheaper Prioritetskøer Binære heaper Venstrevridde heaper (Leftist) Binomialheaper Fibonacciheaper Prioritetskøer er viktige i bla. operativsystemer (prosesstyring i multitaskingssystemer), og søkealgoritmer (A,

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

UNIVERSITETET I OSLO

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

Detaljer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT0 Algoritmer og datastrukturer Faglig kontakt under eksamen Magnus Lie Hetland Telefon 98 5 99 Eksamensdato 9. august, 07 Eksamenstid

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO BOKMÅL Eksamen i : UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet INF1020 Algoritmer og datastrukturer Eksamensdag : Fredag 15. desember 2006 Tid for eksamen : 15.30 18.30 Oppgavesettet

Detaljer

Eksamen iin115, 14. mai 1998 Side 2 Oppgave 1 15 % Du skal skrive en prosedyre lagalle som i en global character array S(1:n) genererer alle sekvenser

Eksamen iin115, 14. mai 1998 Side 2 Oppgave 1 15 % Du skal skrive en prosedyre lagalle som i en global character array S(1:n) genererer alle sekvenser UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 14. mai 1998 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider. Vedlegg:

Detaljer

EKSAMENSOPPGAVE. INF-1101 Datastrukturer og algoritmer. Adm.bygget, rom K1.04 og B154 Ingen

EKSAMENSOPPGAVE. INF-1101 Datastrukturer og algoritmer. Adm.bygget, rom K1.04 og B154 Ingen Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 15.mai 2018 Klokkeslett: 09:00 13:00 Sted: Tillatte hjelpemidler: Adm.bygget, rom K1.04 og B154 Ingen Type innføringsark (rute/linje):

Detaljer

INF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak

INF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak LISTER Vanligste datastruktur Mange implementasjonsmåter (objektkjeder, array...) Operasjoner på listen definerer forskjellige typer lister (LIFO, FIFO,...) På norsk bruker vi vanligvis ordet «liste» for

Detaljer

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer Eksamen i Algoritmer og Datastrukturer Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 10. desember 1998, kl. 09.00-15.00 Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.

Detaljer

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid

Detaljer