1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13.

Slides:



Advertisements
Verwante presentaties
Tafelmanieren Start de vragen.
Advertisements

Digitaal wedstrijd formulier Presentatie scheidsrechters Versie sept 2013.
Sudoku puzzels: hoe los je ze op en hoe maak je ze?
Hoe ruim ik mijn kamer op?
Een getal met een komma noemen we een decimaalgetal.
Digitaal wedstrijd formulier Presentatie scheidsrechters.
Uitleg bijwoordelijke bepaling (bwb)
Aflezen van analoge en digitale meetinstrumenten
Uitleg lijdend voorwerp (lv)
Lagoonia Je vliegtuig is neergestort op een eiland in de Stille Zuidzee en je bent een van de overlevenden. Zult u in staat om andere overlevenden te vinden,
Naam: Mijn info : Klik op “Naam”. Vul je naam in. Doe hetzelfde met “sport” Hier kun je een foto / tekening Invoegen.
Uitleg installatie SAM Broadcaster v3 en v4 met de MySQL database
Techniek: Een Brug Te Ver
Deel 2. Zomaar weer een foto. Niks bijzonders te vermelden.
Datastructuren Quicksort
1 Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen.
Datastructuren Analyse van Algoritmen en O
Datastructuren Analyse van Algoritmen en O
(11,25;10) (10,15) (10,16) Totaal 7 lijnen getekend.
Datastructuren Onderwerp 10
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen College 5.
Fibonacci & Friends Met dank aan Gerard Tel.
Datastructuren Zoekbomen
Zoekbomen: rotaties AVL-bomen Rood-zwart-bomen
1 Datastructuren Heapsort College 4. 2 Vandaag  Kort: ADT vs Datastructuur  Heaps en Heapsort  Tijd over: ondergrenzen voor sorteren; nog sneller sorteren.
1 Datastructuren Zoekbomen II Invoegen en weglaten.
1 Datastructuren Sorteren: alleen of niet alleen vergelijkingen (II) College 6.
Gebalanceerde bomen Zoekbomen: weglaten in rood-zwart-bomen.
1 KANSBEREKENING Datastructuren. 2 Kansberekening  Een paar voorbeelden van kansberekeningsvragen.
Een workshop over katten, muizen en nadenken in de Informatica
Parallelle Algoritmen String matching. 1 Beter algoritme patroonanalyse Bottleneck in eenvoudig algoritme: WITNESS(j) (j = kandidaat in eerste i-blok)
1 Datastructuren Quicksort en andere sorteermethoden College 3.
1 Datastructuren Skiplists. 2 Skiplists  Vrij eenvoudige datastructuur  “Makkelijker” dan gebalanceerde bomen  Kunnen hetzelfde als gebalanceerde bomen.
1 Optuigen van datastructuren 2 Dynamische order statistics (2)
Optuigen van datastructuren
1 Datastructuren Heapsort (2e deel) College 5. 2 Vandaag  Heaps en Heapsort  (eind)  Nog sneller sorteren:  Ondergrenzen  Linair sorteren.
Project OO-AD: Color Crazy Domien Nowicki, Bjorn Schobben.
Statistiekbegrippen en hoe je ze berekent!!
Optuigen van datastructuren Datastructuren Onderwerp 11.
Datastructuren Sorteren, zoeken en tijdsanalyse
Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen Hashtabellen –Oplossen van botsingen met “ketens” (chaining) –Analyse –Oplossen van.
Interpreteren van data
Rekenen groep 4.
Gooien met 1 en 2 dobbelstenen
Een Antilliaanse vrouw komt binnen om een uitkering aan te vragen
Notenschrift test jezelf
Notenschrift test jezelf
Ik doe mijn presentatie over…
Wat is de zin van het leven?
Project OO-AD: Color Crazy Domien Nowicki, Bjorn Schobben.
Uitleg persoonsvorm (pv)
Representatie & Zoeken
De dag vóór het examen Schrijf de data en uren waarop je examen moet doen op een groot vel papier en hang het goed zichtbaar op! Leg alles wat je voor.
MINECRAFT PLAATJES TUTORIAL #2 CRAFT YOUR BACKGROUND.
Gevorderde programmeer les
1 Hashtabellen Datastructuren. 2 Dit onderwerp Direct-access-tabellen (vorige keer) Hashtabellen –Oplossen van botsingen met “ketens” (chaining) Vorige.
1 Optuigen van datastructuren Zoeken op meerdere sleutels Dynamische order statistics (1)
Apartamenta “Bouwvallia” Groeten uit Kluswoude Deel 5.
Verstoppertje spelen in het bos
1 PI1 week 9 Complexiteit Sorteren Zoeken. 2 Complexiteit van algoritmen Hoeveel werk kost het uitvoeren van een algoritme (efficiëntie)? –tel het aantal.
Shake Song Fort van de Verbeelding Bovenbouw Groep 7 en 8 (en soms ook groep 6)
Hoe maak ik een PowerPoint presentatie?
Woordjes leren.
Minimum Opspannende Bomen Algoritmiek. 2 Inhoud Het minimum opspannende bomen probleem Een principe om een minimum opspannende boom te laten groeien Twee.
Les 1. Wat voor les krijgen we nu? Tijdens de lessen over hoofdstuk 9, 10 en 11 krijg je op een andere manier les. Het doel is om je zelfstandigheid te.
Datastructuren voor graafrepresentatie
Slim tellen.
Modderdorp UNPLUGGED Bron: csunplugged.org.
Slim tellen.
Transcript van de presentatie:

1 Datastructuren Een informele inleiding tot Skiplists Onderwerp 13

2 Skiplists  Vrij eenvoudige datastructuur  “Makkelijker” dan gebalanceerde bomen  Kunnen hetzelfde als gebalanceerde bomen  Makkelijkste versie: “verwachtte tijd even snel als gebalanceerde bomen”  Hier: een “informele” inleiding  Hoe werken ze?  Een enkel bewijsje over de tijdgrens

3 Operaties:  Zoek-Element  Minimum  Maximum  Volgende  Vorige  Insert  Delete  Kunnen allemaal goed gedaan worden met skiplists

4 Eerst maar eens: “een gewone dubbelgelinkte lijst” Alles in O(n) in het slechtste geval…

5 Toevoegen van “snelweg”

6 Zoeken met de snelweg  “Loop eerst over de snelweg, totdat je te ver zou gaan, en ga dan door de gewone lijst”

7 Hoeveel stappen maximaal?  Aantal stappen in laag 1: maximaal tot eind  Aantal stappen in laag 2: maximaal stuk tussen twee afritten  Slechtste geval zit tussen:  Maximum van geval 1 en geval 2  Twee keer ‘t maximum van geval 1 en geval 2  Als je nu de afritten op afstand n 1/2 zet dan krijg je ‘t best mogelijke (op factor 2 na)

8 Meer dan twee lagen  Algoritme om x te zoeken:  Begin links in de bovenste laag  Herhaal tot gevonden of helemaal rechts- onderaan:  Zitten we in x? Ja: klaar  Is de volgende in mijn laag < x? Ja: ga een stap verder in deze laag Nee: ga naar dezelfde key in de laag eronder (dit geval nemen we ook als er geen volgende in mijn laag is)

9 Hoe grote stappen per laag?  Als je k lagen hebt, en elke laag r stappen doet voordat je naar de volgende laag gaat:  Maximaal iets van kr stappen  Totaal kan je zo ongeveer k r knopen hebben op de onderste laag  n  k r dus r  log n / log k  Als je k = log n neemt en r=2 heb je een “verstopte gebalanceerde binaire boom”: ‘t kost ook O(log n) tijd

10 Hoe in te voegen en weg te laten?  We maken een versie die “met grote kans” snel werkt  Weglaten is simpel: gewoon weglaten en overal waar je voorkomt je buren verbinden  Tijd: zoeken + O(aantal lagen waar ie in voorkomt)  Invoegen:  In elk geval invoegen in de onderste laag Tijd: zoeken + O(aantal lagen waar ie in voorkomt)  Maar … in hoeveel lagen daarboven?

11 Kansen  Stop met bepaalde kans (bijvoorbeeld ½) de knoop in de laag erboven  Herhaal totdat “munt”  Gooi een munt op.  Is ‘t kop, stop dan de knoop in nog een laagje meer  “Gemiddeld” heb je O(log n) lagen  “Gemiddeld” zitten er steeds twee knopen tussen elke afrit

12 Kinestetische leerervaring?  Voorbeeldje uitproberen

13 Opmerkingen  Slechtste geval van algoritme: oneindig!   Gemiddeld: prima  Je kan ook bewijzen dat de kans dat “alles” in O(log n) gaat heel groot is (naar 1 gaat voor n naar oneindig)  “Variatie”: in plaats van kans ½ misschien 1/3 of …  Constantes kunnen verschillen…

14 Een bewijsje  Met hoge waarschijnlijkheid zijn er O(log n) lagen  Pr[x is in meer dan c log n lagen] = ½ c log n = 1/ n c  Kans dat er minstens 1 element is die in meer dan c log n lagen is:  Hooguit de som van de kansen per element  Dus hooguit n * 1/ n c = 1/n c-1  De rest … zonder bewijs

15 Skip lists  Worden soms gebruikt in plaats van binaire bomen  Wat makkelijker  Operaties als minimum, maximum, successor, predecessor: snel  Successor: O(?)  In eerste instantie O(log n), maar de tweede successor O(1)  Gemiddeld: O(1)

16 Tenslotte  Volgende week: Gerard Tel over string matching!  Bedankt voor de aandacht