Grundlæggende Algoritmer og Datastrukturer

Slides:



Advertisements
Lignende præsentationer
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Advertisements

Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1...mere Sortering [CLRS, kapitel 8] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
iOS, Android. Algoritmer og Datastrukturer 1 Hashing [CLRS, kapitel ] Gerth Stølting Brodal.
Søgning & sortering Intro søgning Lineær søgning Binær søgning
Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS, kapitel 15] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
FEN Rekursion og induktion1 Induktion og (især) rekursion Mange begreber defineres ud fra en basis og så en gentagen anvendelse af et antal regler.
Algoritmer og Datastrukturer 1...mere Sortering [CLRS, kapitel 8] Gerth Stølting Brodal.
Datastrukturer og Collections Rasmus D. Lehrmann DM
Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Hashing [CLRS, kapitel ] Gerth Stølting Brodal.
1 Søgning I. 2 Plan Sekventiel søgning Binær søgning Binære søgetræer Balancerede binære søgetræer træer.
Algoritmer og Datastrukturer 1...mere Sortering [CLRS, kapitel 8] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel 2.3, , problem 30.1.c] Gerth Stølting Brodal.
1 Søgning. 2 Binære søgetræer og skiplister     S0S0 S1S1 S2S2 S3S3    2315.
GP 11, 14/ Grundlæggende programmering Efterår 2001 Forelæsning 11 onsdag 14/ kl. 9:15 – 12:00.
1 Søgetræer. 2 Binære søgetræer Definition Operationer Balancerede binære søgetræer AVL-træer Rød-sort-træer (AA-træer) B-træer Plan.
Lektion 7 Læsestof: Kopier fra Caranno
1 Algoritmisk geometri. 2 Intervalsøgning 3 Motivation for intervaltræer Lad der være givet en database over ansatte i en virksomhed Alder Løn Ansættelsesdato.
Algoritmer og Datastrukturer 1
1 Design, analyse og verifikation. 2 Design Bevisteknikker Design ved hjælp at matematisk induktion Analyse O-notation Logaritmer Binær søgning Verifikation.
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal.
1 Sortering. 2 Sortering ved fletning (merge-sort) 7 2 | 9 4  | 2  2 79 | 4   72  29  94  4.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Minimum Udspændende Træer (MST) [CLRS, kapitel 23]
Algoritmer og Datastrukturer 1 Binære Søgetræer [CLRS, kapitel 12] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2 Topologisk Sortering, Stærke Sammenhængskomponenter [CLRS, kapitel ] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Quicksort [CLRS, kapitel 7] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Quicksort [CLRS, kapitel 7] Gerth Stølting Brodal Aarhus Universitet.
Grundlæggende programmering Forår 2002
Algoritmer og Datastrukturer 2 Del-og-kombiner [CLRS, kapitel , , 28
Algoritmer og Datastrukturer 1 Union-Find [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 ”Rush Hour” Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Suffix træer og Suffix arrays [GT, kapitel 9.2],[Smyth, kapitel 5.3.2] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Suffix træer og Suffix arrays [Smyth, kapitel 5.3.2], [GT, kapitel 9.2] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Gerth Stølting Brodal Suffix træer [GT, kapitel 9.2], Suffix arrays [Smyth, kapitel 5.3.2]
Algoritmer og Datastrukturer 1 Dynamisk Rang & Interval Træer [CLRS, kapitel 14] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 2 Graf repræsentationer, BFS og DFS [CLRS, kapitel ] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Heaps [CLRS, kapitel 6] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal.
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Elementære Datastrukturer [CLRS, kapitel 10] Gerth Stølting Brodal Aarhus Universitet.
Algoritmer og Datastrukturer 1 Hashing [CLRS, kapitel ]
Algoritmer og Datastrukturer 1
Dynamisk Rang & Interval Træer [CLRS, kapitel 14]
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Algoritmer og Datastrukturer 1
Union-Find [CLRS, kapitel ]
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1
Algoritmer og Datastrukturer 1 Amortiseret Analyse [CLRS, kapitel 17]
Algoritmer og Datastrukturer 2
Algoritmer og Datastrukturer 2 Dynamisk Programmering [CLRS 15]
Algoritmer og Datastrukturer 1
Dynamisk Rang & Interval Træer [CLRS, kapitel 14]
Union-Find [CLRS, kapitel ]
Union-Find MakeSet(x) Union(x, y) FindSet(x)
Algoritmer og Datastrukturer 2
Grundlæggende Algoritmer og Datastrukturer
Algoritmer og Datastrukturer 1
Præsentationens transcript:

Grundlæggende Algoritmer og Datastrukturer Binære Søgetræer [CLRS, kapitel 12]

Abstrakt Datastruktur: Ordbog Search(S, x) Insert(S, x) Delete(S, x)

(Statisk) Ordbog : Sorteret Array Search(S,x) O(log n) Insert(S,x) O(n) Delete(S,x)

Worst-case Søgetid Hvor mange sammenligninger kræver det at søge efter et element i et sorteret array med 8 elementer, når man kun kan lave sammenligninger ? 1 2 3 4 5 6 7 8 Ved ikke 1 2 3 4 5 6 7 8 9 11 13 42 71 Sætning At søge blandt ≥ 2i - 1 elementer kræver mindst i sammenligninger 96 of 142

Søgetræ 13 14 15 11 12 7 8 9 10 3 4 5 1 2 6 Invariant For alle knuder er elementerne i venstre (højre) undertræ mindre (større) end eller lig med elementet i knuden

Hvor kan 5.5 indsættes ? A B C A eller B B eller C ved ikke A B C 15 13 11 8 4 14 9 5 12 7 3 1 10 2 6 A B C 90 of 142

Søgetræs søgninger 13 14 15 11 12 7 8 9 10 3 4 5 1 2 6 min max

Indsættelse i Søgetræ y Iterativ søgning z 8.5 x=NIL 13 14 15 11 12 7 9 10 3 4 5 1 2 6 y Iterativ søgning z 8.5 x=NIL

Slettelse fra Søgetræ [CLRS, Ed. 3] z 13 14 15 11 12 7 8 9 10 3 4 5 1 2 6 y 7 y.right Skal slette knuden z, men sletter i stedet en knude y = med højst et barn Transplante = erstat deltræ rodet i u med træet rodet i v (u’s parent opdateres ikke)

Iterative-Tree-Search Søgetræer Inorder-Tree-Walk O(n) Tree-Search Iterative-Tree-Search O(h) Tree-Minimum Tree-Maximum Tree-Insert Tree-Delete h = højden af træet, n = antal elementer

Højden af et Søgetræ ? Højden af et søgetræ er alt afgørende for effektiviteten på søgetræet

Største og Mindste Højde 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Indsæt i stigende rækkefølge - Højde n Perfekt balanceret (mindst mulig højde) - Højde 1+└log n┘ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 For en vilkårlig sorteret liste af elementer, kan vi bygge et søgetræ af højde 1+log n

Tilfældige Indsættelser i et Søgetræ Algoritme: Indsæt n elementer i tilfældige rækkefølge Ligesom ved QuickSort argumenteres at den forventede dybde af et element er O(log n) Den forventede højde af træet er O(log n), dvs. alle knuder har forventet dybde O(log n) [CLRS, Kap. 12.4] Kapitel 12.4 er ikke pensum

Quicksort på 23 elementer 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Quicksort på 23 elementer. Blå elementer er de valgte pivot elementer. Gule/blå elementer er når der kaldes rekursivt på kun et element. Bemærk: Elementer >pivot (og < pivot) elementet kan få en ny indbyrdes rækkefølge! Dybden af et element er antal rekursive kald et element indgår i rekursionen (dvs bliver kigget på i en partition).

Balancerede Søgetræer Ved balancerede søgetræer omstruktureres træet løbende så søgetiderne forbliver O(log n) AVL-træer BB[α]-træer Splay træer Lokalt balancerede træer Rød-sorte træer Randomized trees (2,3)-træer (2,4)-træer B-træer Vægtbalancerede ...