Algoritmer og datastrukturer Assignment 11 Side 1 av 5

Like dokumenter
Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.4

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

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2

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

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

Definisjon av binært søketre

Algoritmer og Datastrukturer IAI 21899

Algoritmer og Datastrukturer

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

Algoritmer og Datastrukturer

INF2220: Time 4 - Heap, Huffmann

Algoritmer og Datastrukturer

Løsningsforslag EKSAMEN

Et eksempel: Åtterspillet

IN Algoritmer og datastrukturer

INF Algoritmer og datastrukturer

Flerveis søketrær og B-trær

EKSAMEN med løsningsforslag

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

INF Algoritmer og datastrukturer

Definisjon. I et binært tre har hver node enten 0, 1 eller 2 barn

Notater til INF2220 Eksamen

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

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

INF1020 Algoritmer og datastrukturer. Dagens plan

EKSAMENSOPPGAVE. IAI20102 Algoritmer og datastrukturer

UNIVERSITETET I OSLO

INF2220: Time 12 - Sortering

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

... Dagens plan. Prioritetskø ADT

Definisjon: Et sortert tre

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

Flerveis søketrær og B-trær

INF Algoritmer og datastrukturer

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

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

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

Algoritmer og datastrukturer Løsningsforslag

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1

INF Algoritmer og datastrukturer

Kanter, kanter, mange mangekanter

INF Algoritmer og datastrukturer

Kap.12. Flervegssøketre. Studerer 2-3 og 2-4 trær. Sist oppdatert

Oppgave 1. Oppgave 2. Høgskolen i Østfold Avdeling for informasjonsteknologi

NIO 1. runde eksempeloppgaver

EKSAMEN. Algoritmer og datastrukturer

Posisjonsystemet FRA A TIL Å

Ordliste. Obligatorisk oppgave 1 - Inf 1020

Algoritmer og Datastrukturer

Datastrukturer. Algoritmer og datastrukturer. Øvingsforelesning 2

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3

Veiviser til vilbli.no for rådgivere

UNIVERSITETET. Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Hashliknende strukturer.

KONTINUASJONSEKSAMEN

Diagnosekart for oblig 2, INF3/4130 h07

Object [] element. array. int [] tall

Korteste vei i en vektet graf uten negative kanter

Løsningsforslag Øving 5 TMA4140 Diskret matematikk Høsten 2010

Algoritmer og datastrukturer Løsningsforslag

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

Et eksempel: Åtterspillet

Lars Vidar Magnusson

EKSAMEN. Emne: Algoritmer og datastrukturer

Straffespark Introduksjon Scratch Lærerveiledning

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Eksempel

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

Selv-balanserende søketrær

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

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

UNIVERSITETET I OSLO

Algoritmer og datastrukturer Eksamen 22. februar 2011

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

8NH )RUHOHVQLQJ 'HSDUWPHQWÃRIÃ,QIRUPDWLFVÃ8QLYHUVLW\ÃRIÃ2VORÃ1RUZD\,1) ± $OJRULWKPVÃÉÃ'DWDÃ6WUXFWXUHV

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

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

Algoritmer og datastrukturer Løsningsforslag

Tallinjen FRA A TIL Å

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

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

Hvor raskt klarer vi å sortere?

Løsningsforslag - Korteste vei

Telle i kor steg på 120 frå 120

Dagens tema. INF Algoritmer og datastrukturer. Binærtrær. Generelle trær

Dagens plan: INF Algoritmer og datastrukturer. Repetisjon: Binære søketrær. Repetisjon: Binære søketrær

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

Eksamen iin115 og IN110, 15. mai 1997 Side 2 Oppgave 1 Trær 55 % Vi skal i denne oppgaven se på en form for søkestrukturer som er spesielt godt egnet

Trær. En datastruktur (og abstrakt datatype ADT)

KONTINUASJONSEKSAMEN

INF1020 Algoritmer og datastrukturer

Rekursiv programmering

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

POLITISKE SAKSDOKUMENTER:

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

PG4200 Algoritmer og datastrukturer Forelesning 7

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

Algoritmer og datastrukturer Eksamen

G høgskolen i oslo. Emne: Algoritmer og datastrukturer. Emnekode: 80131A. Faglig veileder: UlfUttersrud. Gruppe(r) : Dato:

Lær å bruke Microsoft Mathematics, Matematikk-tillegget i Word og WordMat. Av Sigbjørn Hals

INF oktober Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet

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

Transkript:

Assignment 11 Side 1 av 5 Oppgave 1 Utregning av ASCII summer, og hashfunksjon: Hashfunksjon: A(s) % n Nøkkel ASCII SUM (ASCII SUM) % 8 ANNE 290 2 PER 231 7 NINA 294 6 ANNI 294 6 ALI 214 6 KAREN 369 1 OLA 220 4 SIV 242 2 Innsetting av nøkler(enkel, lineær prøving ved kollisjoner): Øverste rad indikerer indeks for plassering av nøkler For hver av de etterfølgende radene indikerer hver rad en ny innsetting Nøkkelen som settes inn er understreket og uthevet 0 1 2 3 4 5 6 7 ANNE ANNE ANNE NINA PER ANNI ANNE NINA PER ANNI ALI ANNE NINA PER ANNI ALI ANNE KAREN NINA PER ANNI ALI ANNE KAREN OLA NINA PER ANNI ALI ANNE KAREN OLA SIV NINA PER Etter alle nøkler er satt inn er tabellen helt full og ser slik ut: ANNI ALI ANNE KAREN OLA SIV NINA PER Oppgave 2 Maxheap på tabell-form: 42 30 16 11 25 8-3 a) På tre-form: PER

Assignment 11 Side 2 av 5 b) Sett inn 73 Tre-form: 1. Opprinnelig tre. 2. Setter inn 73 etter regler for komplett tre, og sjekker om 73 er større enn sin foreldre 11. 3. 73 er større enn 11 dermed boble opp. Sjekker om 73 er større enn sin foreldre 30. 4. 73 er større enn 30 boble opp. Sjekker om 73 er større enn sin foreldre 42. 5. 73 er større enn 42 bobler opp. Sjekker om 73 er større enn sin foreldre. Finner ut at den ikke har noen foreldre, altså er rot i hele treet, dermed stopp fordi rett plass er funnet. Tabell-form: Regelen for å finne foreldre brukes her: (i 2)/2 Uthever gjellende foreldre. 0 1 2 3 4 5 6 7 Kommerntar hvor i er indeks for barnet man vil finne foreldre til. 42 30 16 11 25 8 3 73 Legger til 73 bakerst i array. Bruker regel for å finne foreldre og sammenligner. 73 er større enn sin foreldre 11 -> bytter disse. 42 30 16 73 25 8 3 11 Bruker regel for å finne foreldre og sammenligner. 73 er større enn sin foreldre 30 -> bytter disse. 42 73 16 30 25 8 3 11 Bruker regel for å finne foreldre og sammenligner. 73 er større enn sin foreldre 42 -> bytter disse. 73 42 16 30 25 8 3 11 Nå er 73 satt på rett plass (siden regelen for å finne foreldre havner utenfor array). Hvis man sammenligner tabellen med en levelorder gjennomgang av treet over får man ut verdiene i samme rekkefølge som denne arrayen er satt opp.

Assignment 11 Side 3 av 5 c) Ta ut høyeste node (før 73 er satt inn): Tre-form: 1. Opprinnelig tre. 2. Kopierer sist innsatte verdi over rota i treet (3), og fjerner denne orginalnoden. Sjekker om den nye rota (3) har barn som er av større verdi enn seg selv, begge barn er her større. Bobler ned med det største av barna (30). 3. Sjekker om 3 har barn som er større enn seg selv, dette er tilfellet. Bobler ned med det største av barna (25). 4. Sjekker om 3 har barn som er større enn seg selv, dette er ikke tilfellet siden 3 nå er en bladnode (ikke har noen barn). Dermed er rett plass funnet (siden den ikke har barn som er større enn seg selv). Tabell-form: Regler for å finne barn i array: høyre barn: 2i + 1 hvor i er indeks til foreldre (rot i subtreet) venstre barn: 2i + 2 hvor i er indeks til foreldre (rot i subtreet) Uthever gjellende barn til aktuell verdi. 0 1 2 3 4 5 6 Kommerntar 42 30 16 11 25 8 3 Opprinnelig tabell. Skal fjerne verdien 42 helt fremst. Koperer dermed sist innsatte (3) over den første verdien, og setter "siste" referansen til å være nest siste i arrayen. Dermed er et element fjernet. 3 30 16 11 25 8 X Bruker regler for å finne barn av rota (3) i subtreet og sjekker om noen av barna er av større verdi, isåfall bobles rota nedover. Dette er tilfellet her da begge barn er større, tar det største barnet som er 30 og bytter med 3. 30 3 16 11 25 8 X Bruker regler for å finne barn av rota (3) i subtreet og sjekker om noen av barna er av større verdi, isåfall bobles rota nedover. Dette er tilfellet her da begge barn er større, tar det største barnet som er 25 og bytter med 3. 30 25 16 11 3 8 X Bruker regler for å finne barn av rota (3) i subtreet og sjekker om noen av barna er av større verdi, isåfall bobles rota nedover. Siden reglene gir verdier som ligger utenfor array vil det si at den ikke har noen barn (bladnode). Stopper da fordi rett plass er funnet (når ingen barn er større enn rota).

Assignment 11 Side 4 av 5 d) HeapSort forklaring: Benytter en binærheap hvor rota er større/mindre (kommer an på om det er max-/minheap) enn sine barn, og til en hver tid bruker struktur for et komplett binærtre (sett inn fra venstre mot høyre). Binærheap operasjoner: Innsetting: 1. Legg til ny node (på rett plass i forhold til komplett tre krav) 2. Sjekk om rota i subtreet er større/mindre enn ny node Isåfall boble opp helt til rett plass er funnet (rota er større/mindre eller lik gjellende verdi) Fjerning/sletting: 1. Kopier sist innsatte til rota i treet, og fjern orginalen av denne 2. Sjekk om barn er større/mindre enn den nye rota Isåfall boble opp helt til rett plass er funnet (rota er større/mindre eller lik gjellende verdi) HeapSortering går ut på å først bygge opp en binærheap med det settet av verdier som skal sorteres. Når denne er bygget opp tømmes den (ved å hele tiden fjerne den største/minste verdien). Output av dette uttaket vil komme i sortert rekkefølge. Operasjonene for HeapSort kan benyttes på samme datastruktur (array) ved å legge til den sorterte outputen bakerst i arrayen. For å illustrere hvordan dette fungerer har jeg valgt å ta med illustrasjoner for fjerning av minste verdi i en MinHeap. Treet er først bygget opp som et MinHeap ved å sett inn en og en verdi. For hvert steg tar man ut øverste verdi (rota) i treet og samler på output. Følgende verdier bygger opp treet: 15, 42, 40, 30, 82, 6, 64, 22, 50, 79. Opprinnelig tre. Tar ut verdi: 6 Tar ut verdi: 15 Tar ut verdi: 22 Tar ut verdi: 30 Tar ut verdi: 40 Tar ut verdi: 42 Tar ut verdi: 50 Tar ut verdi: 64

Assignment 11 Side 5 av 5 Tar ut verdi: 79 Tar ut verdi: 82 Får dermed følgende output: 6 15 22 30 40 42 50 64 79 82 Som vi ser kommer output sortert (her stigende).