Lars Vidar Magnusson Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting
|
|
- Elsa Aase
- 7 år siden
- Visninger:
Transkript
1 Rød-Svarte Trær Lars Vidar Magnusson Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting
2 Rød-Svarte Trær Rød-Svarte trær (red-black trees) er en variasjon binære søketrær som til enhver tid sørger for balanse i søketreet. Forsikrer at høyden på søketreet er O(log n). Dette forsikrer også at operasjonene vil ta O(log n). Vi legger til et ekstra attributt color i hver node som angir fargen til noden. En node er enten rød eller svart. Disse fargekodene brukes for å holde orden på strukturen til søketreet.
3 Representasjon av Rød-Svarte Trær Vi tar i bruk en enkelt sentinel T.nil for å representere nil i søketreet. T.nil.color er svart Alle bladnoder er tomme og svarte (de peker til T.nil). Forelderen til rotnoden peker også til T.nil.
4 Eksempel på et Rød-Svart Tre Figuren under viser et eksempel på et rød-svart tre uten bruk av en sentinel.
5 Eksempel på et Rød-Svart Tre Figuren under viser det samme eksempelet på et rød-svart tre hvor alle tomme pekere har blitt erstattet med en peker til sentinel-noden T. nil.
6 Eksempel på et Rød-Svart Tre Figuren under viser det samme eksempelet på et rød-svart tre, men nå uten alle hjelpenoder. Det er slik vi tegner rød-svarte trær, så lenge detaljene ikke av en eller annen grunn er påkrevd.
7 Egenskaper ved Rød-Svarte Trær Rød-svarte trær har følgende egenskaper: Hver node er enten rød eller svart. Rotnoden er svart. Hver eneste bladnode (T.nil) er svart. Hvis en node er rød, så er begge barna svarte (aldri to røde på rad i en enkel sti fra roten til en bladnode). For alle noder så inneholder hver eneste sti til bladnoder samme antall svarte noder. Disse egenskapene sørger for balanse i søketreet.
8 Høyden til et Rød-Svart Tre Rød-svarte trær har to typer høyder. Høyden til en node er antall kanter i lengste enkle sti til en bladnode (normal høyde) Svart-høyden til en node bh(x) er antall svarte noder (inkludert T.nil men ikke x) på stien fra x til en bladnode. Utifra den femte egenskapen ved rød-svart trær er bh(x) veldefinert i.e. alle stier gir samme antall svarte noder.
9 Høyden til et Rød-Svart Tre En node med høyde h har svart-høyde h/2. Følger av egenskap 4 ved rød-svarte trær siden minst halvparten av nodene må være svarte. Deltreet med rotnode x inneholder 2 bh(x) 1 interne noder (ikke bladnoder). Kan bevises med matematisk induksjon ved å utnytte det faktum at hvert barn har svart-høyde på enten bh(x) eller bh(x) 1 om barnet er henholdsvis rødt eller svart. Dette følger av egenskap 5 ved rød-svarte trær. Hvis vi setter disse to sammen får vi en øvre grense på høyden til et rød-svart tre med n interne noder på 2 log(n + 1). Dette kan bevises ved å løse ulikheten n 2 h/2 1 med hensyn på h.
10 Operasjoner på Rød-Svarte Trær Alle operasjonene vi presentere forrige uke som ikke modifiserer treet har kjøretide på O(log n). Dette gjelder for Minimum, Maximum, Successor, Predecessor og Search. Innsetting og sletting er ikke så enkelt siden vi må sørge for at egenskapene til rød-svarte trær blir ivaretatt Hvilken farge skal nye noder få? Hvis den er rød kan egenskap 4 brytes, eller også 2 hvis den nye noden er rotnoden. Hvis den er svart kan egenskap 5 brytes Hvordan påvirker fargen til en node egenskapene når en node slettes? Hvis den er svart kan egenskap 4 og 5 brytes, eller til og med 2 hvis noden var rotnoden og barnet som blir satt inn er rødt. Hvis den er rød blir egenskapene fortsatt ivaretatt.
11 Rotasjoner En rotasjon er operasjonen som benyttes for å restrukturere treet slik at det er balanse i søketreet. Forandrer på trestrukturen ved å endre pekerne. Påvirker ikke egenskapen til binære søketrær. Vi har både venstre- og høyre-rotasjoner. Operasjonene er symmetriske. Kjøretiden for begge rotasjonene er O(1). Benyttes av andre typer trær også (AVL, splay-trær).
12 Hvordan Rotasjoner Fungerer Figuren under viser hvordan rotasjoner fungerer. Operasjonen tar en referanse til søketreet og en intern node. Venstrerotasjoner gjør y sitt venstre barn til x sitt høyre Høyrerotasjoner gjør x sitt høyre barn til y sitt venstre
13 Left-Rotate Algoritmen Pseudokoden for Left-Rotate er listet under. Right-Rotate algoritmen er lik, men left og right er byttet om.
14 Eksempel Rotasjon Figuren under viser et eksempel på hvordan en rotasjon fungerer.
15 RB-Insert Algoritmen RB-Insert algoritmen brukes for å sette inn et nytt element i et rød-svart tre. Den er i hovedsak lik Tree-Insert algoritmen men skiller seg ut på to punkter RB-Insert setter den nye noden til å være rød Vi kaller en hjelpefunksjon RB-Insert-Fixup for å sørge for at de de rød-svarte egenskapene ivaretas. Ved å sette den nye noden til å være rød kan enten egenskap 2 eller 4 være brutt.
16 RB-Insert Pseudokode Pseudokoden til RB-Insert er listet under.
17 RB-Insert-Fixup Algoritmen Hjelpefunksjonen RB-Insert-Fixup brukes for å restrukturere treet slik at de rød-svarte egenskapene gjelder etter en insetting. Algoritmen løser konflikter med den 2 egenskapen ved å alltid sette rotnoden til å være svart Algoritmen løser konflikter med den 4 egenskapen ved rød-svart trær ved å se på på noden z sin onkel y (z.p sin bror ). Vi skiller på 6 ulike tilfeller (tre symmetriske tilfeller som avhenger om onkelen er høyre eller venstre barn). y er rød y er svart og z er høyre barn y er svart og z er venstre barn
18 RB-Insert-Fixup - Tilfelle 1 Vi ser først på tilfellet hvor y er rød. z.p.p (z sin besteforelder) må være svart, siden z og z.p begge er røde og det kan ikke være andre konflikter i treet. Vi setter både z.p og y til å være svart. Dette løser konflikten med den 4 egenskapen, men det kan også introdusere konflikter med den 5 egenskapen. Vi setter z.p.p til å være rød. Dette løser konflikter med den 5 egenskapen. Vi setter z til å være z.p.p før vi gå videre med neste iterasjon.
19 RB-Insert-Fixup - Tilfelle 1 Figuren under viser begge utgavene av tilfelle 1 (hvor y er rød). a viser utgaven hvor z er høyre barn b viser utgaven hvor z er venstre barn
20 RB-Insert-Fixup - Tilfelle 2 og 3 Det andre tilfellet forekommer når y er svart og z er høyre barn. Vi utfører en venstrerotasjon rundt z. p. Nå er z venstre barn, og både z og z.p er røde. Det tredje tilfellet forekommer når y er svart og z er venstre barn. Vi gjørz.p svart og z.p.p rød. Vi utfører en høyrerotasjon rundt z.p.p Dette løser konflikten med den 4 rød-svarte egenskapen. Nå er z.p er nå svart. Dette avbryter algoritmen. Vi utfører aldri mere enn to rotasjoner.
21 RB-Insert-Fixup - Tilfelle 2 og 3 Figuren under viser hvordan vi går fra tilfelle 2, til tilfelle 3, til et gyldig rød-svart tre.
22 Psedukode for RB-Insert-Fixup Algoritmen Pseudokoden til RB-Insert-Fixup algoritmen er listet under.
23 Analyse av RB-Insert Kjøretiden av RB-Insert er O(log n) frem til kallet til RB-Insert-Fixup. Kjøretiden til RB-Insert-Fixup kan sammenfattes med følgende punkter Hver iterasjon tar O(1) Hver iterasjon tar oss opp to nivåer Vi har O(log n) nivåer Vi har derfor en kjøretid på O(log n) Den totale kjøretiden av RB-Insert er derfor O(log n).
24 RB-Delete Algoritmen RB-Delete algoritmen benyttes til å slette et element fra et rød-svart tre. Algoritmen er vesentlig lengre enn Tree-Delete, men alle stegene i Tree-Delete finnes også i RB-Delete. Transplant har blitt byttet ut med en spesialisert hjelpefunksjon RB-Transplant y er en ekstra node referanse som enten peker til noden som skal slettes (hvis noden ikke har flere enn et barn) eller til noden som skal ta plassen til noden som skal slettes Vi lagrer orginalfargen til y for å kunne sjekke om noen av egenskapene har blitt brutt. x peker til noden som tar y sin plass (enten y sitt eneste barn eller T.nil). x.p blir oppdatert enten i RB-Transplant eller satt til å peke på y.
25 RB-Delete Pseudokode Pseudokoden til RB-Delete er listet under.
26 RB-Transplant Pseudokode Pseudokoden til RB-Transplant er listet under. Kjøretiden til RB-Transplant er O(1).
27 Konflikter Introdusert av RB-Delete RB-Delete kan introdusere konflikter. Disse forekommer bare når orginalfargen til y er svart. Hvis y er rotnoden og x er rød så har vi brutt egenskap 2 Hvis både x og x.p er røde har vi brutt egenskap 4 Vi har også brutt egenskap 5 siden vi har tatt bort en svart node fra stien til alle forfedre med y har nå en mindre svart node. Vi løser opp konfliktene med et kall til RB-Delete-Fixup.
28 RB-Delete-Fixup Algoritmen Konfliktene introdusert av RB-Delete blir fikset av RB-Delete-Fixup algoritmen. Den siste konflikten introdusert ved at vi tar bort en svart node kan løses ved at man lar x få en ekstra svart. En konseptuell endring i.e. ingen endring i koden. Vi antar bare en ekstra svart på alle nodene vi vurderer rød = rød-svart og svart = svart-svart Vi lar den ekstra svarte gå oppover i treet til x peker til en rød-svart node = vi gjør noden svart x peker til rotnoden = vi fjerner ekstra svart, eller vi utfører passende rotasjoner og omfarginger, og returnerer Vi har 8 tilfeller, men 4 av de er symmetriske med de resterende 4.
29 RB-Delete-Fixup - Tilfelle 1 Tilfelle 1 forekommer når x sin bror w er rød. w må ha to svarte barn. Vi gjør w svart og x.p rød Vi utfører en venstrerotasjon på x. p. Det nye barnet til x må være svart siden det var et barna til w før rotasjonen. Dette tar oss direkte til tilfelle 2, 3, eller 4
30 RB-Delete-Fixup - Tilfelle 2 Tilfelle 2 forekommer når x sin bror w er svart og begge barna til w er svarte. Merk at den lysegrå har en ukjent farge Ta bort ekstra svart på x og w. Dette gjør x svart og w rød. Flytt ekstra svart til x.p Kjør neste iterasjon med x.p som x. Hvis vi kom fra tilfelle 1 vil dette føre til at løkken avbrytes og x blir satt til svart
31 RB-Delete-Fixup - Tilfelle 3 Tilfelle 3 forekommer når x sin bror w er svart og det høyre barnet til w er svart. Gjør w rød og w sitt høyre barn svart. Utfør en høyrerotasjon på w. Den nye broren w er svart og har et rødt barn. Dette tar oss til tilfelle 4.
32 RB-Delete-Fixup - Tilfelle 4 Tilfelle 4 forekommer når x sin bror w er svart og det høyre barnet til w er rødt. Merk at vi nå har to noder med ukjent farge Gjør fargen til w til c (den ukjente fargen c til x.p) Gjør x.p svart og w sitt høyre barn svart Utfør en venstrerotasjon i x. p Fjern ekstra svart på x som vil gjøre x svart Vi er nå ferdig og kan sette x til rotnoden for å avbryte løkken.
33 RB-Delete-Fixup Pseudokode Pseudokoden til RB-Delete-Fixup er listet under.
34 Analyse av RB-Delete Kjøretiden til RB-Delete er O(log n) frem til kallet til RB-Delete-Fixup. Kjøretiden til RB-Delete-Fixup kan summeres med Det er bare tilfelle 2 som fører til ytterligere iterasjoner Går oppover nivå for nivå O(log n) nivåer Vi utfører totalt sett maksimum 3 rotasjoner Totalt sett er kjøretiden til RB-Delete O(log n).
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
DetaljerINF2220: 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
DetaljerINF2220: 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
DetaljerINF2220: 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
DetaljerLars Vidar Magnusson
B-Trær Lars Vidar Magnusson 5.3.2014 Kapittel 18 B-trær Standard operasjoner Sletting B-Trær B-trær er balanserte trær som er designet for å fungere bra på sekundære lagringsmedium e.g. harddisk. Ligner
DetaljerGrunnleggende 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
DetaljerBalanserte binære søketrær
Balanserte trær Balanserte binære søketrær Balanserte binære søketrær høyden (l treet er O(log 2 n) AVL trær rød-svarte trær svake AVL trær splaytrær heaps AVL trær rød-svarte trær svake AVL trær splaytrær
DetaljerDefinisjon: 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
DetaljerDefinisjon 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
DetaljerAlgoritmer og datastrukturer Kapittel 9 - Delkapittel 9.4
Delkapittel 9.4 Splay-trær Side 1 av 7 Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.4 9.4 Splay-trær 9.4.1 Splay-rotasjoner Et splay-tre er et sortert binætre der treet restruktureres på en
DetaljerSelv-balanserende søketrær
Selv-balanserende søketrær Georgy Maksimovich Adelson-Velsky Evgenii Mikhailovich Landis Søketrær og effektivitet O(log n) effektivitet av binære søketrær kan ikke garanteres Treet til venstre har høyde
DetaljerHeapsort. 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
DetaljerLø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
DetaljerINF2220: Gruppe me 2. Mathias Lohne Høsten 2017
INF0: Gruppe me Mathias Lohne Høsten 0 1 Rød-svarte trær Vanlige binære søketrær blir fort veldig ubalanserte. røv å sett inn 1,,, 4, 5,, 7,... (i den rekkefølgen) i et binært søketre. Da vil vi i praksis
DetaljerTrær. Består av sammenkoblede noder Hver node har 0 eller flere barne-noder. Må være asyklisk. Et tre med n noder har n-1 kanter.
Generelle trær: Trær Består av sammenkoblede noder Hver node har 0 eller flere barne-noder. Må være asyklisk. Et tre med n noder har n-1 kanter. løvnoder kant rotnode sub-tre 1 Generelle trær: Oppbygging
DetaljerRepetisjon: 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
DetaljerDefinisjon. I et binært tre har hver node enten 0, 1 eller 2 barn
Binære trær Definisjon I et binært tre har hver node enten 0, 1 eller 2 barn Rekursiv definisjon: Et binært tre er enten tomt, eller: Består av en rotnode og to binære trær som kalles venstre subtre og
DetaljerGrunnleggende Grafalgoritmer III
Grunnleggende Grafalgoritmer III Lars Vidar Magnusson 26.3.2014 Kapittel 21 og 22 Usammenhengende-sett Strongly-connected components Usammenhengende Sett Usammenhengende sett er ikke en grafalgoritme i
DetaljerNotater 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
DetaljerFra 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
DetaljerHeap 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
DetaljerUNIVERSITETET 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
DetaljerMinimum 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
DetaljerGrunnleggende Grafalgoritmer II
Grunnleggende Grafalgoritmer II Lars Vidar Magnusson March 17, 2015 Kapittel 22 Dybde-først søk Topologisk sortering Relasjonen til backtracking Dybde-Først Søk Dybde-først søk i motsetning til et bredde-først
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2017 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2017, forelesning
DetaljerUke 5 Disjunkte mengder
Uke 5 Disjunkte mengder MAW, kap.. 8 September 19, 2005 Page 1 Hittil Forutsetninger for og essensen i faget Metodekall, rekursjon, permutasjoner Analyse av algoritmer Introduksjon til ADT er Den første
DetaljerHeap* 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
DetaljerEKSAMENSOPPGAVE. 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):
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 5: Prioritetskø og Heap Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 5 1 /
DetaljerINF 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
DetaljerINF 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
DetaljerINF2220: Time 4 - Heap, Huffmann
INF0: Time 4 - Heap, Huffmann Mathias Lohne mathialo Heap (prioritetskø) En heap (også kalt prioritetskø) er en type binært tre med noen spesielle struktur- og ordningskrav. Vi har to typer heap: min-
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 4: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2220 H2016, forelesning
DetaljerEnkle datastrukturer. Lars Greger Nordland Hagen. Introduksjon til øvingsopplegget og gjennomgang av python
1 Enkle datastrukturer Lars Greger Nordland Hagen algdat@idi.ntnu.no Introduksjon til øvingsopplegget og gjennomgang av python 2 I dag Stack Kø (queue) Lenkede lister (linked list) Trær Binære søketrær
DetaljerTrær. En datastruktur (og abstrakt datatype ADT)
Trær Trær En datastruktur (og abstrakt datatype ADT) Trær En datastruktur (og abstrakt datatype ADT) En graf som 8lfredss8ller bestemte krav Object [] int [] tall array element 0 1 2 3 4 5 0 1 2 3 4 5
DetaljerEt 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
DetaljerFlerveis søketrær og B-trær
Flerveis søketrær og B-trær Flerveis (multi-way, n-ært) søketre Generalisering av binært søketre Binært søketre: Hver node har maksimalt 2 barn og 1 nøkkelverdi. Barna ligger sortert på verdi i forhold
DetaljerDagens plan: INF2220 - Algoritmer og datastrukturer. Repetisjon: Binære søketrær. Repetisjon: Binære søketrær
Dagens plan: INF2220 - lgoritmer og datastrukturer HØTEN 2007 Institutt for informatikk, Universitetet i Oslo (kap. 4.7) (kap. 12.2) Interface ollection og Iterator (kap. 3.3) et og maps (kap. 4.8) INF2220,
DetaljerBinæ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... 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)
DetaljerIN Algoritmer og datastrukturer
IN2010 - Algoritmer og datastrukturer HØSTEN 2018 Ingrid Chieh Yu Institutt for informatikk, Universitetet i Oslo Forelesning 3: Prioritetskø og Heap Ingrid Chieh Yu (Ifi, UiO) INF2010 H2018, forelesning
DetaljerHashtabeller. 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
DetaljerAlgoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2
Delkapittel 9.2 Rød-svarte og 2-3-4 trær side 1 av 21 Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2 9.2 Rød-svarte og 2-3-4 trær 9.2.1 B-tre av orden 4 eller 2-3-4 tre Et rød-svart tre og et
DetaljerAlgoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2
Delkapittel 9.2 Rød-svarte og 2-3-4 trær Side 1 av 16 Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2 9.2 Rød-svarte og 2-3-4 trær 9.2.1 B-tre av orden 4 eller 2-3-4 tre Et rød-svart tre og et
DetaljerPG 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:
DetaljerDisjunkte mengder ADT
Binære relasjoner A A = {(x, y) x, y A}: mengden av ordnede par over A. Disjunkte mengder ADT Weiss kap. 8.1 8.5 Løser ekvivalensproblemet Lett og rask implementasjon Vanskelig tidsforbrukanalyse Ark 1
DetaljerDatastrukturer. Stakker (Stacks) Hva er en datastruktur? Fordeler / Ulemper. Generelt om Datastrukturer. Stakker (Stacks) Elementære Datastrukturer
Hva er en datastruktur? Datastrukturer Elementære Datastrukturer En datastruktur er en systematisk måte å lagre og organisere data på, slik at det er lett å aksessere og modifisere dataene Eksempler på
DetaljerObject [] element. array. int [] tall
Datastrukturer Object [] int [] tall array element 0 1 2 3 4 5 0 1 2 3 4 5 6 7 8 40 55 63 17 22 68 89 97 89 graf lenkeliste graf Object data Node neste Node neste Node neste Node neste Node Node neste
DetaljerBinæ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(?):
DetaljerBinære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013
Binære søketrær Et notat for INF Stein Michael Storleer 6. mai 3 Dette notatet er nyskrevet og inneholder sikkert feil. Disse vil bli fortløpende rettet og datoen over blir oppdatert samtidig. Hvis du
DetaljerMAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Forelesning 26: Trær Roger Antonsen Institutt for informatikk, Universitetet i Oslo 5. mai 2009 (Sist oppdatert: 2009-05-06 22:27) Forelesning 26 MAT1030 Diskret Matematikk 5.
DetaljerPrioritetskøer. Prioritetskøer. Binære heaper (vanligst) Prioritetskøer
Binære heaper (Leftist) Prioritetskøer Prioritetskøer er viktige i bla. operativsystemer (prosesstyring i multitaskingssystemer), og søkealgoritmer (A, A*, D*, etc.), og i simulering. Prioritetskøer Prioritetskøer
DetaljerAlg. 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,
DetaljerGrå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
DetaljerKorteste 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
DetaljerINF110 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
DetaljerEt 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
DetaljerNy/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
DetaljerINF2220: 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)
DetaljerINF Algoritmer og datastrukturer
INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 10 1 / 27
DetaljerEKSAMEN 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
DetaljerDagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner
Dagens plan: INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Definisjon av binær relasjon Definisjon av ekvivalens
DetaljerEkstra 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
DetaljerDynamisk 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 å
DetaljerDivide-and-Conquer. Lars Vidar Magnusson 13.1.2015
Divide-and-Conquer Lars Vidar Magnusson 13.1.2015 Kapittel 4 Maximum sub-array problemet Matrix multiplikasjon Analyse av divide-and-conquer algoritmer ved hjelp av substitusjonsmetoden Divide-and-Conquer
DetaljerE K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID:
Høgskolen i Gjøvik Avdeling for Teknologi E K S A M E N FAGNAVN: FAGNUMMER: Algoritmiske metoder I L 189 A EKSAMENSDATO: 11. desember 2001 KLASSE: 00HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID: 09.00-14.00
DetaljerBinæ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
DetaljerDynamisk programmering
Dynamisk programmering Metoden ble formalisert av Richard Bellmann (RAND Corporation) på 5-tallet. Programmering i betydningen planlegge, ta beslutninger. (Har ikke noe med kode eller å skrive kode å gjøre.)
DetaljerPrioritetskø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,
DetaljerSvarforslag til ukeoppgaver til INF 4130
Svarforslag til ukeoppgaver til INF 4130 15. november 2011 Oppgave 1: Løs 14.4 (hvori innbakt svaret på oppgave 14.5) Vi skal altså vise at Hungarian-algoritmen kan implementeres i tid O(n 3 ), der n er
DetaljerForelesning 23. Grafteori. Dag Normann april Oppsummering. Oppsummering. Oppsummering. Digresjon: Firefarveproblemet
Forelesning 23 Grafteori Dag Normann - 16. april 2008 Oppsummering En graf består av noder og kanter Kanter ligger inntil noder, og noder kan være naboer. Vi bør kjenne til begrepene om sammenhengende
DetaljerTMA4140 Diskret Matematikk Høst 2016
Norges teknisk naturvitenskapelige universitet Institutt for matematiske fag TMA4140 Diskret Matematikk Høst 2016 Seksjon 10.2 18 La G = (V,E) være en enkel graf med V 2. Ettersom G er enkel er de mulige
DetaljerMAT1030 Diskret matematikk
MAT1030 Diskret matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 16. april 2008 Oppsummering En graf består av noder og kanter Kanter ligger inntil noder, og
DetaljerOppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Forelesning 23: Grafteori
Oppsummering MAT1030 Diskret matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 16. april 2008 En graf består av noder og kanter Kanter ligger inntil noder, og
DetaljerAlgoritmer og datastrukturer Kapittel 9 Delkapittel 9.2
Delkapittel 9.2 Rød-svarte og 2-3-4 trær Side 1 av 24 Algoritmer og datastrukturer Kapittel 9 Delkapittel 9.2 9.2 Rød-svarte og 2-3-4 trær 9.2.1 B-tre av orden 4 eller 2-3-4 tre Et 2-3-4 tre (et B-tre
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1020 Algoritmer og datastrukturer Eksamensdag: 15. desember 2004 Tid for eksamen: 14.30 17.30 Oppgavesettet er på 6 sider.
DetaljerINF1020 Algoritmer og datastrukturer. Dagens plan
Dagens plan Prioritetskø ADT Motivasjon Operasjoner Implementasjoner og tidsforbruk Heap-implementasjonen Strukturkravet Heap-ordningskravet Insert DeleteMin Tilleggsoperasjoner Build Heap Anvendelser
DetaljerEKSAMEN. 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
DetaljerForelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann
MAT1030 Diskret Matematikk Forelesning 25: Trær Dag Normann Matematisk Institutt, Universitetet i Oslo Forelesning 25 27. april 2010 (Sist oppdatert: 2010-04-27 14:16) MAT1030 Diskret Matematikk 27. april
DetaljerKorteste Vei I. Lars Vidar Magnusson 9.4.2014. Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei
Korteste Vei I Lars Vidar Magnusson 9.4.2014 Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei Korteste Vei Problemet I denne forelesningen skal vi se på hvordan vi kan finne korteste
DetaljerOppgave 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
DetaljerGrunnleggende 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 å
DetaljerMAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Forelesning 25: Trær Dag Normann Matematisk Institutt, Universitetet i Oslo 27. april 2010 (Sist oppdatert: 2010-04-27 14:15) Forelesning 25 MAT1030 Diskret Matematikk 27. april
DetaljerMAT1030 Diskret matematikk
MAT1030 Diskret matematikk Forelesning 33: Repetisjon Dag Normann Matematisk Institutt, Universitetet i Oslo 26. mai 2008 Innledning Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske
DetaljerInnledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon
Innledning MAT1030 Diskret matematikk Forelesning 33: Repetisjon Dag Normann Matematisk Institutt, Universitetet i Oslo 26. mai 2008 Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske
Detaljer... Dagens plan. Prioritetskø ADT
Dagens plan Prioritetskø ADT Motivasjon Operasjoner Implementasjoner og tidsforbruk Heap-implementasjonen Strukturkravet Heap-ordningskravet Insert DeleteMin Tilleggsoperasjoner Build Heap Anvendelser
DetaljerAvsluttende eksamen i TDT4120 Algoritmer og datastrukturer
Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer Eksamensdato 14. desember 2011 Eksamenstid 1500 1900 Sensurdato 14. januar Språk/målform Bokmål Kontakt under eksamen Magnus Lie Hetland (tlf.
DetaljerKap.12. Flervegssøketre. Studerer 2-3 og 2-4 trær. Sist oppdatert
Kap.12 Flervegssøketre Sist oppdatert 12.04.10 Studerer 2-3 og 2-4 trær Motivasjon n maks = antall elementer i et fullt binært tre med nivåer 0 k ; (en node har ett element) n maks = 2 0 + 2 1 + + 2 k
DetaljerEKSAMEN. 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
DetaljerQuicksort. Lars Vidar Magnusson Kapittel 7 Quicksort Randomisert Quicksort Analyse av Quicksort
Quicksort Lars Vidar Magnusson 29.1.2014 Kapittel 7 Quicksort Randomisert Quicksort Analyse av Quicksort Om Quicksort Quicksort er en svært populær sorteringsalgoritme. Algoritmen har i verstefall en kjøretid
DetaljerBalanserte søketrær. AVL-trær. AVL-trær. AVL-trær høyde AVL AVL. AVL-trær (Adelson-Velskii og Landis, 1962) Splay-trær (Sleator og Tarjan, 1985)
alanserte søketrær VL-trær Et bnært tre er et VL-tre hvs ølgende holder: VL-trær delson-velsk og Lands, 96 play-trær leator og Tarjan, 98. orskjellen høyde mellom det høyre og det venstre deltreet er maksmalt,
DetaljerForelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11
Forelesning 33 Repetisjon Dag Normann - 26. mai 2008 Innledning Onsdag 21/5 gjorde vi oss ferdige med det meste av den systematiske repetisjonen av MAT1030. Det som gjensto var kapitlene 11 om trær og
DetaljerMAT1030 Forelesning 25
MAT1030 Forelesning 25 Trær Dag Normann - 27. april 2010 (Sist oppdatert: 2010-04-27 14:16) Forelesning 25 Litt repetisjon Vi har snakket om grafer og trær. Av begreper vi så på var følgende: Eulerstier
DetaljerEksamen 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
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 og IN110 Algoritmer og datastrukturer Eksamensdag: 15. mai 1997 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.
DetaljerEKSAMEN 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:
DetaljerKap 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
DetaljerOppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Eksempel
MAT1030 Diskret matematikk Forelesning 26: Trær Sist forelesning snakket vi i hovedsak om trær med rot, og om praktisk bruk av slike. rot Dag Normann Matematisk Institutt, Universitetet i Oslo barn barn
DetaljerMAT1030 Diskret Matematikk
MAT1030 Diskret Matematikk Plenumsregning 8: Ukeoppgaver Mathias Barra Matematisk institutt, Universitetet i Oslo 6. mars 2009 (Sist oppdatert: 2009-03-06 19:11) Oppgave 5.9 La A = {a, b, c} og B = {p,
DetaljerINF2220: 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
DetaljerMAT1030 Forelesning 24
MAT1030 Forelesning 24 Grafteori og trær Roger Antonsen - 28. april 2009 (Sist oppdatert: 2009-04-28 22:32) Forelesning 24 Oppsummering En graf består av noder og kanter Kanter ligger inntil noder, og
Detaljer