INF 295 Algoritmer og datastrukturer Forelesning 9a Søketrær Hans Fr. Nordhaug (Ola Bø)

Slides:



Advertisements
Liknende presentasjoner
@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.
Advertisements

TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Kristian Veøy
Service i ordnede former Servicebedriftenes Landsforening Lagrede personopplysninger i Bemanningsbransjen Anbefalte rutiner for sletting.
Kap.8 Sortering og søking sist oppdatert • Del 1 Søking - lineær søking m/u sorterte elementer - binærsøking - analyse • Del 2 Sortering - ”gamle”
Algoritmer for søk og sortering Førsteamanuensis Alf Inge Wang
Ulike sorteringsmetoder Kompleksitet av dem
Maskin Læring Litt generelt Hva er maskin læring?
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
1 Øvingsforelesning Andreas Knudsen Nils Grimsmo
Øvingsforelesning 3 Grafer, BFS, DFS og hashing
Øvingsforelesning 2 Trær og søking i dem, samt litt diverse emner Kristian Veøy
Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø
Øvingsforelesning Magnus Haug
INF 295 Forelesning 15 - kap 9 Grafer Hans Fr. Nordhaug (Ola Bø)
Maks resultat og maks oppfylte kundekrav. LOG530 Distribusjonsplanlegging 2 2 Vi fortsetter eksempel 9, men benytter nå nettopriser for varene. (Antar.
Klargjøring fra forrige gang
Siste forelesning ER/EER-modellering
1 Kap 08 Kø. 2 Kø - Definisjon En kø (eng queue) er en lineær struktur hvor elementer kan innsetttes kun i den ene enden av listen, kalt bak, og fjernes.
Kap 02 Tabeller / Tabelloperasjoner. Enkeltvariable Les inn nedbørmengde for årets 12 måneder: Les n1 Les n2 … Les n12 n1 n2 n12.
Kap 10 Graf.
INF 295 Algoritmer og datastrukturer Forelesning 21 Merge, Quick og Bøtte, Radix og ekstern sortering Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 7 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 1 - kapittel 1 Introduksjon Hans F. Nordhaug (Ola Bø) (Ketil Danielsen, 2007)
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 8 Trær Hans Fr. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Prioritetskø (Heap) Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 16 - kap 9 Minimalt spenntre og korteste vei i grafer Hans Fredrik Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 11 Når RAM ikke strekker til - B-trær og Utvidbar hashing Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 20 - Kapittel 7 Boble-, innstikk-, Shell-, Heap-, Quick-, Mergesortering Hans Fr. Nordhaug (Ola Bø)
Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 2 - kapittel 1 Hans F. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Andre prioritetskøer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 18 - kap 9 Aktivitetsgrafer
INF 295 Algoritmer og datastrukturer Forelesning 6 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 24 Repetisjon
INF 295 Algoritmer og datastrukturer Forelesning 9b Balanserte (binære) trær Hans Fr. Nordhaug.
INF 295 Forelesning 19 - Dynamisk programmering Korteste vei alle til alle (Floyd) Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
1 Kap 06 Ordnede / Sorterte lister Oppgave nr 06_02 Polynomer Klassehierarki Javadokumentasjon.
INF 4130 Eksamen 2008 Gjennomgang.
Magnus Haug Algoritmer og Datastrukturer
1 INF5110 – 23. april, 2013 Svar på noen oppgaver til kap. 8 Beklager noe trykkfeil og rot på forelesningene Håper dette er bedre (lagt ut 24/4) Nå fredag.
INF3100 – – Ellen Munthe-Kaas Indeksering UNIVERSITETET I OSLO © Institutt for Informatikk Utvalgte animerte lysark: lysark nr. 7, 8, 9, 10,
Eksempel: Sletting ved tynn indeks Slett post med a = 60 –Ingen endring nødvendig i indeksen. Slett post med a = 40 –Den første posten i blokken er blitt.
Parallellisering av Coin3D for Systems in Motion av Sveinung Thunes.
INF 295 forelesning 12 Repetisjon per 17. februar Hans F. Nordhaug (Ola Bø)
Alg. Dat Øvingsforelesning 11 Dynamisk programmering, grådighet
Designing a DHT for low latency and high through TDT2 – Avanserte distribuerte systemer Øystein Ellingbø.
En formel er gyldig hviss den sann i alle tolkninger Utsagnslogikk Tolkning = linje i sannhetsverditabell Altså: En formel er gyldig hviss den har T i.
INF 295 Algoritmer og datastrukturer Forelesning 5 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 22 Teknikker for algoritmeutvikling Hans Fr. Nordhaug/ Ola Bø.
Ortering Mål: Se på forskjellige måter for sortering.
Sorterings- Algoritmer Algoritmer og Datastrukturer.
Hypotesetesting, og kontinuerlige stokastiske variable
Sterke og 2-sammenhengende komponeneter, DFS
Prioritetskøer Binære heaper Venstrevridde heaper (Leftist) Skeive heaper (Skew) Binomialheaper Fibonacciheaper Prioritetskøer er viktige i bla. operativsystemer.
Routing Indices For P2P Systems TDT2 – Avanserte Distribuerte Systemer Lars-Erik Bjørk.
INF 295 Algoritmer og datastrukturer Web-spider Oblig 3 Hans Fr. Nordhaug (Ola Bø)
Inf1000 (Uke 5) Arrayer, filer og tekst
UFLP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter (lager) for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
Matematikk 1 årskurs 26. oktober 2009
Kapittel 12 Samlingar Samlingar og datastrukturar Ei samling (collection) blir brukt til å oppbevare og handtere andre objekt ArrayList – klassen.
INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet Hans Fr. Nordhaug/ Ola Bø.
1 Øvingsforelesning 4 Topologisk sortering Minimale spenntrær Håkon Jacobsen
Utvalgte animerte lysark: lysark nr. 7, 8, 9, 10, 26, 28, 30, 33, 35
فصل هفتم شاخص گذاری.
Utskrift av presentasjonen:

INF 295 Algoritmer og datastrukturer Forelesning 9a Søketrær Hans Fr. Nordhaug (Ola Bø)

Søketre - ADT Binære søketrær Binærtrær kan brukes til å implementere effektiv søking I binære søketrær gjelder denne egenskapen for enhver node med verdi x i treet: Alle noder i venstre undertre av noden har lavere verdi og alle noder i høyre undertre har høyere verdi Forutsetter at elementene som lagres i treet kan ordnes på en eller annen måte

Ikke søketre - bryter ordningsregelen Søketre Alle noder i venstre undertre er mindre og alle noder i høyre undertre er større enn verdien i en gitt node Søketre eller ikke søketre?

Operasjoner på binære søketrær Lages gjerne rekursivt Ettersom dybden på treet er O(log N) trenger vi ikke å bekymre oss for at stakken flyter over For å sikre at treet kan ordnes implementerer vi Comparable og følgelig int compareTo() find findMin, findMax insert remove printTree Separasjon av ekstern "driver" og intern rekursiv rutine

find Fire muligheter T er tom T er den vi søker Den vi søker er mindre enn T - sjekk venstre Den vi søker er større enn T - sjekk høyre Hale-rekursjon Er rekursjon i siste statement i en rutine Kan og bør alltid erstattes med loop, men ikke her fordi rekursjon gir enklere algoritme uten kostnadssprekk O(log N)

findMax, findMin Fortsett mot høyre (venstre) så lenge det går og returnere ytterste node.

insert Gjør som ved find Hvis funnet - oppdater, ellers sett inn ny node Duplikathåndtering bare lagre en og telle antall (øker plassbehov) legge duplikater inn i treet (kan gi dype trær) hvis elementet er en større struktur: liste eller tre

Innsetting

remove Vanskeligste operasjon Når noden er funnet: er noden en blad-node, kan den slettes har noden ett barn, overlates barnet til nodens forelder har noden to barn - erstatt nodens data med minste data i høyre undertre, som deretter må slettes. Lazy deletion Merket slettet Fordel ved duplikattelling Rimelig

sletting ett barn

sletting av node med to barn

Analyse av gjennomsnittstilfellet Det kan vises at indre path-length er O(NlogN) Da er gjennomsnittsdybden O(log N) Sletterutinen er ikke symmetrisk Treet blir ubalansert ved et stort antall innsettinger/slettinger Gjennomsnittsdybden nærmer seg rota av N ved N 2 innsetting/sletting Ved høyere antall blir det mer balansert igjen Hva blir så gjennomsnittet? I praksis kjøretid på algoritmene O(log N) Spesialtilfelle: Ferdig sortert input - gir O(N 2 ) fordi binærtreet da degenererer til en kostbar lenket liste.

Tilfeldig generert tre

Tre etter N 2 tilfeldige sett inn- og slett- operasjoner

Binærtre som er balansert i rota

Balanserte trær Et balansert tre sikrer kontroll med hvor dypt nodene kommer Mange mulige algoritmer Mer komplisert Lenger kjøretid i gjennomsnitt for oppdateringer AVL-trær Alternativ - selvjusterende trær Hvorfor bruke balanserte trær?