Binære Søketre. Egenskap. Egenskap : Grafisk. Egenskap : Kjøretid. Egenskap : Kjøretid. Egenskap : Oppsumering. Binære Søketre



Like dokumenter
Lars Vidar Magnusson

Definisjon av binært søketre

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

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

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

Definisjon: Et sortert tre

Løsningsforslag. Oppgave 1.1. Oppgave 1.2

INF2220: Gruppe me 2. Mathias Lohne Høsten 2017

INF2220: Forelesning 2

Kap 9 Tre Sist oppdatert 15.03

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

LO118D Forelesning 12 (DM)

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

Algoritmer og Datastrukturer

Balanserte binære søketrær

Selv-balanserende søketrær

Binære trær: Noen algoritmer og anvendelser

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

INF2220: Forelesning 2

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

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

Et eksempel: Åtterspillet

INF Algoritmer og datastrukturer

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

Øvingsforelesning 6. Sorteringsalgoritmer. Martin Kirkholt Melhus Basert på foiler av Kristian Veøy 30/09/14 1

INF2220: Time 12 - Sortering

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

Enkle datastrukturer. Lars Greger Nordland Hagen. Introduksjon til øvingsopplegget og gjennomgang av python

Øvingsforelesning 6. Sorteringsalgoritmer. Kristian Veøy

INF1010 Binære søketrær ++

INF Algoritmer og datastrukturer

UNIVERSITETET I OSLO

INF Algoritmer og datastrukturer

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

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

Rekursiv programmering

EKSAMEN med løsningsforslag

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

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

Algoritmer og Datastrukturer

INF Algoritmer og datastrukturer

Innledning Grafer. Grafer / Nettverk. Hva er en graf? Hva er en graf? Eksempler på grafer? Hva er en graf? Elementære Graf-Algoritmer

INF Algoritmer og datastrukturer

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.

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

Algoritmer og datastrukturer Eksamen

København 20 Stockholm

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

Notater til INF2220 Eksamen

PG4200 Algoritmer og datastrukturer Forelesning 7

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

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

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. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00

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

IN Algoritmer og datastrukturer

Et eksempel: Åtterspillet

Algoritmer og Datastrukturer

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

PG 4200 Algoritmer og datastrukturer Innlevering 2

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

UNIVERSITETET I OSLO

Øvingsforelesning 7. Dijkstras algoritme. Foiler: Fredrik Ludvigsen Foreleser: Jon Marius Venstad 10/4/09 1

Lars Vidar Magnusson

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

UNIVERSITETET I OSLO

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

INF1020 Algoritmer og datastrukturer GRAFER

KONTINUASJONSEKSAMEN

Prioritetskøer. Prioritetskøer. Binære heaper (vanligst) Prioritetskøer

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

Rekursiv programmering

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

EKSAMEN. Algoritmer og datastrukturer

Kontinuasjonseksamen i fag SIF8010 Algoritmer og Datastrukturer Torsdag 9. August 2001, kl

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

Disjunkte mengder ADT

Algoritmer og datastrukturer Løsningsforslag

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

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

NIO 1. runde eksempeloppgaver

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1

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

EKSAMENSOPPGAVE. NB! Det er ikke tillatt å levere inn kladd sammen med besvarelsen

INF2220: Forelesning 1

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

Først litt praktisk info. Sorteringsmetoder. Nordisk mesterskap i programmering (NCPC) Agenda

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

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

Dagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner

Sist gang (1) IT1101 Informatikk basisfag. Sist gang (2) Oppgave: Lenket liste (fysisk) Hva menes med konseptuelt og fysisk i forb med datastrukturer?

Uke 5 Disjunkte mengder

INF Algoritmer og datastrukturer

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

Algoritmer og datastrukturer Løsningsforslag

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Eksempel

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

Divide-and-Conquer II

Transkript:

genskap inære Søketre inære Søketre t binært søketre er organisert som et binærtre, og har følgende egenskap a x være en node i et binært søketre. vis y er en node i x s venstre subtre, vil verdi[y] verdi[x] vis y er en node i x s høyre subtre, vil verdi[y] verdi[x] ernt ngvald Sunde 1 ernt ngvald Sunde genskap : rafisk genskap : jøre ksempelfigur: O(lg n) Operasjoner på et binært søketre, er derfor proposjonal med høyden på treet 7 8 wful (verste tilfellet) 1 O(n) 7.... n inærtreet reduseres til en liste av n elementer og n nivåer ad (nesten lik wful ) O(n) inærtreet reduseres til en liste av n elementer og n nivåer når n vokser mot uendelig ernt ngvald Sunde ernt ngvald Sunde genskap : jøre genskap : Oppsumering Normal O(lg n) O(lg n) jennomsnittshøyden til et normalt tre er 1. log n. Nice Nivå: t perfekt balansert tre n elementer og log(n+1) nivåer. elementer = n nivåer 1 = -1 ernt ngvald Sunde 1 ersom det er n noder i treet vil operasjoner på treet ta: O(lg n) for et normal tre t binært søketre er derfor godt egnet for effektiv gjennfinning i et ordnet (sortert) materiale Metoden er basert på -delt splitt & hersk, og er pekerbasert ernt ngvald Sunde

Operasjoner Medlemssøk < inn node med verdi > 18 inært Søketre > 7 = Medlem (node) er da funnet jøre blir høyden til treet, O(lg n) ernt ngvald Sunde 7 ernt ngvald Sunde 8 Minimumsverdi ølg alle venstre-pekere fra roten elt til du ikke kan gå lenger, Venstre-peker er da N Maksimumverdi ølg alle høyre-pekere fra roten elt til du ikke kan gå lenger, øyre-peker er da N Minste verdi i treet er da funnet jøre blir høyden til treet, O(lg n) Største verdi i treet er da funnet jøre blir høyden til treet, O(lg n) ernt ngvald Sunde ernt ngvald Sunde 10 orgjenger til z = tterfølger til z = lle noder i høyre subtre til, er større enn. lle noder i venstre subtre til, er mindre enn. er den største verdien i venstre subtre, og er derfor forgjengeren til. ernt ngvald Sunde 11 17 er den minste verdien i høyre subtre, og er derfor etterfølgeren til. ernt ngvald Sunde 1

nnsetting av node < > 18 < 7 > Sett inn node (z) med verdi r roten=n blir z trets rot vis ikke traverser treet på samme måte som ved medlemssøk. elt til N nåes og z settes nn på rett plass i treet jøre blir høyden til treet, O(lg n) ilfelle 1: z har ingen barn ksempel z= Vi bare fjerner z ernt ngvald Sunde ernt ngvald Sunde ilfelle 1: z har ingen barn ilfelle : z har 1 barn ksempel z= Vi bare fjerner z ksempel z=7 ernt ngvald Sunde ernt ngvald Sunde 1 ilfelle : z har 1 barn ilfelle : z har 1 barn ksempel z=7 ksempel z=7 ernt ngvald Sunde 17 ernt ngvald Sunde 18

z 10 y 8 ilfelle : z har barn ksempel z= etterfølger y (8), som har 1 barn og y 8 18 10 ilfelle : z har barn ksempel z= etterfølger y (8), som har 1 barn og 11 rstatter node z med node y 11 rstatter node z med node y ernt ngvald Sunde 1 ernt ngvald Sunde 0 raversering raversering inært Søketre raversering eller ree Walk er en måte å besøke nodene i et tre på. n kan si at en sorterer nodene på en ønsket eller bestemt måte ruker en enkel rekursiv algoritme til å printe ut denne rekkefølgen ernt ngvald Sunde 1 ernt ngvald Sunde raversering : Prefix raversering : norder OP OP - øyre subtre reewalk(left[x]) reewalk(right[x]) ernt ngvald Sunde Vi får en sortert rekkefølge - øyre subtre reewalk(left[x]) reewalk(right[x]) ernt ngvald Sunde

raversering : Postix ernt ngvald Sunde OP - øyre subtre reewalk(left[x]) reewalk(right[x]) Sortering av et array Sortert rray nsetting O(lg n) otal O(lg n*n) Usortert rray N elementer ygger først et binært tre av arrayet, noe som vil ta O(n*lg n) eretter traverserer vi treet inorder, noe som vil ta O(n) S_Sort() for(i=1 to n) reensert([i]) norderreewalk(root) ernt ngvald Sunde