Norges Informasjonsteknologiske Høgskole

Like dokumenter
Norges Informasjonsteknologiske Høgskole

Norges Informasjonsteknologiske Høgskole

NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer

MED TIDESTIMATER Løsningsforslag

NORGES INFORMASJONSTEKNOLOGISKE HØGSKOLE PG4200 Algoritmer og datastrukturer

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

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

EKSAMEN. Emne: Algoritmer og datastrukturer

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

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

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

Oppgave 1. Sekvenser (20%)

PG4200 Algoritmer og datastrukturer Forelesning 7

Algoritmer og Datastrukturer

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

Algoritmer og Datastrukturer

Algoritmer og Datastrukturer

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

UNIVERSITETET I OSLO

Pensum: fra boken (H-03)+ forelesninger

Pensum: fra boken (H-03)+ forelesninger

Algoritmer og Datastrukturer

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

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

PG 4200 Algoritmer og datastrukturer Innlevering 2

PG4200 Algoritmer og datastrukturer Forelesning 10

PG4200 Algoritmer og datastrukturer Forelesning 12

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

København 20 Stockholm

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

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. Algoritmer og datastrukturer

UNIVERSITETET I OSLO

Løsningsforslag. Oppgave 1.1. Oppgave 1.2

PG4200 Algoritmer og datastrukturer Forelesning 2

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

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

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

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

KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG

UNIVERSITETET I OSLO

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

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

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

UNIVERSITETET I OSLO

Når Merge sort og Insertion sort samarbeider

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

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

UNIVERSITETET I OSLO

Algoritmer og datastrukturer Eksamen

UNIVERSITETET I OSLO

PG4200 Algoritmer og datastrukturer Forelesning 5 Implementasjon av lister

Algoritmer og Datastrukturer IAI 21899

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.

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Løsningsforslag til INF110 h2001

INF1010 Rekursive metoder, binære søketrær. Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl

Høgskolen i Gjøvik. Avdeling for elektro- og allmennfag E K S A M E N. EKSAMENSDATO: 12. desember 1995 TID:

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø

UNIVERSITETET I OSLO

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

EKSAMENSOPPGAVE. IAI20102 Algoritmer og datastrukturer

EKSAMEN med løsningsforslag

Innledning. IN2010/INF Algoritmer og datastrukturer. Tirsdag 27. november 2018 Kl (4 timer)

INF1010 Binære søketrær ++

Algoritmer og Datastrukturer

Løsningsforslag til eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 14. Desember 1999, kl

INF1010 LISTER. Listeelementer og listeoperasjoner. Foran. Bak

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Algoritmer og Datastrukturer

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning

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

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

Høgskolen i Gjøvik. Avdeling for elektro- og allmennfag K O N T I N U A S J O N S E K S A M E N. EKSAMENSDATO: 11. august 1995 TID:

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

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

KONTINUASJONSEKSAMEN

UNIVERSITETET I OSLO

Eksamen i fag SIF8010 Algoritmer og Datastrukturer Tirsdag 18. Desember 2000, kl

PQ: HEAP. Heap. Er disse heap er? Hvordan implementere heap:

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID:

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

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister

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

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

Definisjon: Et sortert tre

Binære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013

TDT4105 Informasjonsteknologi, grunnkurs

~ta11 oppgaver: 4. Nle skriftlige hjelpemidler-både trykte og håndskrevne, er tillatt

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 99HINDB / 99HINEA / 00HDESY ( 2DA / 2DB / 2EA / DESY )

INF1010 Sortering. Marit Nybakken 1. mars 2004

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

Eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

Binære trær: Noen algoritmer og anvendelser

Transkript:

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: Lars Sydnes lars.sydnes@nith.no 93 03 56 85 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. Oppgave 1 a) Bruk O-notasjon til å angi ordenen til de følgende vekstfunksjonene uten å begrunne svaret. (i) f(n) = 31.4 + 15n 9 + 2 n (ii) g(n) = (n + 1) log n + 4n 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); 4 } 5 6 void g(int n){ 7 int i = 1; 8 while(i < n){ 9 f(i); 10 i*=2; 11 } 12 } 13 14 void dosomething(int n){ 15 // Something O(1) 16 }

Side 2 av 6 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, 6. b) Hva er fordelen med balanserte trær? c) Forklar hva Red-Black-trær er. d) Når bruker vi køer i forbindelse med traversering av trær og grafer? Når bruker vi stakker til det samme? 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; } f) Skriv en rekursiv metode for sekvensielt søk i en lenket liste der nodene tilhører klassen Node definert i forrige punkt. g) Forklar hva det betyr at java.util.hashset benytter strategien chaining? I hvilken situasjon forekommer rehashing av hash-tabeller?

Side 3 av 6 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 3 1 4 1 5 9 2 6 1 3 4 1 5 9 2 6 1 1 4 3 5 9 2 6 1 1 2 3 5 9 4 6 1 1 2 3 5 9 4 6 1 1 2 3 4 9 5 6 1 1 2 3 4 5 9 6 1 1 2 3 4 5 6 9 3 1 4 1 5 9 2 6 1 3 1 4 5 9 2 6 1 1 3 4 2 5 6 9 1 1 2 3 4 5 6 9 (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. 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. (ii) Selection sort. (iii) En algoritme hentet fra java.util.arrays som hovedsaklig bygger på Quick sort.

Side 4 av 6 kjøretid (millisekunder) 1200 1000 800 600 400 200 Metode A 0 0 2000 4000 6000 8000 10000 Antall elementer Tilfeldige data Sorterte data Metode B kjøretid (millisekunder) 14000 12000 10000 8000 6000 4000 2000 0 0 2000 4000 6000 8000 10000 Antall elementer Tilfeldige data Sorterte data Metode C kjøretid (millisekunder) 14000 12000 10000 8000 6000 4000 2000 0 0 2000 4000 6000 8000 10000 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. Oppgave 4 import java.util.priorityqueue;

Side 5 av 6 /*...*/ 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. 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.

Side 6 av 6 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. c) Hjelp Eva og Are ved å gå gjennom den algoritmen du beskrev i forrige punkt. Få fram de viktigste stegene samt sluttresultatet. 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. Slutt på oppgavesettet