Sachverzeichnis A Z Ω-Notation, 14 Θ-Notation, 14 NP, 337 NPO, 354 O-Notation, 14 P, 337 ω-notation, 14 -Notation, 14 o-notation, 14 Abstrakter Datentyp, 26 Ackermann-Funktion, 106 adjazent, 69, 70 Adjazenzmatrix, 74 markierte, 75 Algorithmentheorie, 3 Algorithmus, 1 2-Wege-Mergesort, 225 Boruvkas, 201 Boyer-Moore, 264 Boyer-Moore-Horspool, 267 Breitensuche, 99 Bubble-Sort, 203 Dijkstra, 191, 304 direkter Mergesort, 227 Distribution Counting, 232 Heapsort, 220 Insertion-Sort, 205 Karp-Rabin, 268 Knuth-Morris-Pratt, 249 Kruskal, 195, 303 Mergesort, 225 Prim, 199 Quickselect, 220 Quicksort, 215 Radix-Exchange, 232 Radixsort, 232 randomisierte Näherung von π, 372 randomisierter Primzahltest, 370 Schönhage-Strassen, 326 Selection-Sort, 207 Shellsort, 213 Tiefensuche, 88 Ukkonen, 273 Warshalls, 200 All Pairs Shortest Path Problem, 194 amortisierten Kosten, 104 Approximationsalgorithmen, 360 Array, 27 sequentielle Repräsentation, 27 Asymptotische Notationen, 14 Ausgrad, 70 Austausch-Eigenschaft, 302 Auswahlproblem, 219 Average-Case, 8 B-Baum, 151 Bäume, 68 t-näre, 71 B-, 151 binäre, 82 Datenstrukturen für, 76 erweiterte Binär-, 71 Fibonacci, 126 geordnete, 72 Kind-Geschwister Darstellung, 82 Links-Sohn-Darstellung, 79 mehrfache Verkettung, 81 Räpresentation durch Array, 76 Sohn-Listen, 77 ungeordnet gewurzelte, 71 Vater-Zeiger, 77 Backtracking, 355 Balancegrad, 125 M. Nebel, Entwurf und Analyse von Algorithmen, DOI 10.1007/978-3-8348-2339-7, Vieweg+Teubner Verlag Springer Fachmedien Wiesbaden 2012
386 Sachverzeichnis Balancierte Bäume, 125 AVL-Bäume, 130 B-Bäume, 151 gewichtsbalanciert, 140 höhenbalanciert, 125 Splay-Trees, 140 Bankkontenmethode, 21 Bellmansches Optimalitätskriterium, 291 Berechenbarkeit, 3 Loop-, 4 While-, 5 Best-Case, 8 Binäre Suchbäume, 114 Analyse der Suchzeiten, 118 binäre Suche, 114 binärer Baum, 82 binärer Suchbaum, 115 binäres Einfügen, 207 Binärzähler, 19 Binomischen Satz, 12 Binpacking-Problem, 300 Bitkomplexität, 19 Bitvektordarstellung, 65 Blatt, 71 Boyer-Moore-Algorithmus, 264 bad-character-heuristik, 264 good-suffix-heuristik, 265 Boyer-Moore-Horspool-Algorithmus, 267 Branch&Bound, 357 Breitensuche, 99 Bruder, 71 Bubble-Sort, 203 Carmichael-Zahlen, 371 carry sequence, 167 Catalan-Zahlen, 292 Code, 295 Code-Baum, 296 Cursor, 51 Datenstruktur AVL-Bäume, 130 B-Bäume, 151 Baum, 76 Binäre Suchbäume, 114 Digitaler Suchbaum, 157 Digraph, 73 Graph, 73 Heap, 220 Lineare Liste, 41 Menge, 65 Priority-Queue, 224 Queue, 58 selbstorganisierend, 140 Splay-Trees, 140 Stack, 56 Trie, 157 Datentyp, abstrakter, 26 Digitale Suchbäume, 157 Digraph, 69 transitive Hülle, 200 Dijkstra-Algorithmus, 304 Distribution Counting, 232 Divide and Conquer, 287 Dominierende Menge, 352 Dopevektor, 30 Dynamisches Programmieren, 291 Eingrad, 70 Einheitswurzel, 310 Elementarereignis, 9 Elementaroperationen, 13 Endrekursionsbeseitigung, 85 Entropie, 299 Entwurfsmethoden, 287 Backtracking, 355 Branch&Bound, 357 Divide and Conquer, 287 Dynamisches Programmieren, 291 Greedy-Algorithmen, 294 Induktion, 200 Lineares Programmieren, 304 Reduktion, 351 schwere Optimierungsprobleme, 353 Transformationen, 309 Ereignis, 9 Ereignisraum, 9 Erfüllbarkeitsproblem, 339 Erwartungswert, 10 Erzeugendenfunktion, 10, 127, 210 Wahrscheinlichkeiten-, 12, 169, 176 evaluation problem, 354 externe Pfadlänge, 120 Felder, 27 Fibonacci-Bäume, 126
Sachverzeichnis 387 Formelsammlung, 381 Fourier-Transformation diskrete, 310 schnelle, 314 mit Bit-Operationen, 320 Funktion, 3 Gödelisierung, 6 Garbage Collection, 130 gefädelte Darstellung, 86 geordneter Baum, 72 gerichteter Graph, 69 gewichtsbalancierten Bäume, 139 goldene Schnitt φ, 161 Grad eines Knotens, 69 Graph-Algorithmen, 189 Graphen, 68 Datenstrukturen für, 73 kürzeste Wege, 190 markierte, 71 minimale Spannbäume, 195 traversiern von, 88 Greedy-Algorithmen, 294 Matroide, 301 Greedy-Algorithmus kanonischer, 302 Höhe eines Baumes, 71 höhenbalanciert, 125 Haltefunktion, 6 Hashfolgen, 166 Hashing, 159 Hash-Funktionen, 159, 160 c-universell, 178 Hash-Tabellen, 159 Auslastungsgrad, 169 Kollisionsbeseitigung, 161 Analyse Linear Probing, 165 Indirect Chaining, 173 Linear Probing, 162 Verkettung, 161 uniformes, 170 universelles, 178 Heap, 220 Heapsort, 220 Huffman-Codes, 295 innerer Knoten, 71 Inorder, 84 Insertion-Sort, 205 interne Pfadlänge, 120 Interpolation, 311 Inversion, 209 Inversionentafel, 209 inzident, 69, 70 Inzidenzmatrix, 73 Königsberger Brückenproblem, 189 Kante kreuzend, 197 Karp-Rabin-Algorithmus, 268 Knuth-Morris-Pratt-Algorithmus, 249 Analyse, 257 Komplexitätsklasse NP, 337 NPO, 354 P, 337 Komplexitätstheorie, 335 Konvolution, 13, 169, 311 Kosten, amortisierte, 19 Kruskal-Algorithmus, 303 lexikographische Ordnung, 28 Lineare Listen, 41 doppelt verkettet, 51 Queue, 58 sequentielle Repräsentation, 43 Stack, 56 verkettete Repräsentation, 46 Lineares Programmieren, 304 Links-Rechts-Ordnung, 72 Listendarstellung, 65 Loop-berechenbar, 4 markierte Adjazenzmatrix, 75 Master-Theorem, 22 Matching, 308 Matroid, 302 Max-Heap, 220 Median, 219 Median of Three, 219 Mengen, 65 Mergesort, 225 direkter, 227 Min-Heaps, 220
388 Sachverzeichnis Niveau eines Knotens, 71 Notationsverzeichnis, 379 Odd-Even-Merge, 238 Online-Algorithmen, 362 Multiprozessor Scheduling, 367 Paging-Problem, 363 Optimierungsproblem, 353 Paging-Strategien FIFO, 364 LFU, 364 LIFO, 364 LRU, 364 Partition-Problem, 352 Partitionen, 103 Baumdarstellung, 104 Pfadkomprimierung, 105 einfach verkettete Listen, 103 Permutation, 108 Permutationsmodell, 122 Pfadkomprimierung, 105 Pfadlänge externe, 120 interne, 120 Pivot-Element, 216 Postorder, 84 Präfix-Code, 295 Präfix-Funktion, 251 Preorder, 84 Primary Clustering, 166 Priority-Queue, 224 Problem 3KNF-SAT, 344 SAT, 339 APSPP, 194 Auswahl, 219 Binpacking, 300 Clique, 343 Cycle Cover, 359 dominierende Menge, 352 Erfüllbarkeit, 339, 356 gewichtete Matchings, 308 Hamilton-Kreis, 343 gerichtet, 346 ungerichtet, 349 kürzester Präfix-Code, 295 Knotenüberdeckung, 343, 346 längestes gemeinsames Teilwort, 281 Mengenüberdeckung, 343, 345, 361 minimale Spannbäume, 195 Multiplikation zweier n-bit-zahlen, 287 Multiplikation zweier Matrizen, 290 Multiplikation zweier Polynome, 325 Multiprozessor Scheduling, 367 Paging, 363 Partition, 352 Rucksack, 352 Set-Matching, 280 SSSPP, 190 String-Matching, 245, 279 für Menge von Texten, 280 topologisches Sortieren, 62 Travelling-Salesman, 343, 350, 358 Union-Find, 103 Wörterbuch, 113 Wiederholungen in Wörtern, 282 Produkte von Polynomen, 325 Queue, 58 Quickselect, 220 Quicksort, 215 Radix-Exchange, 232 Radixsort, 232 Random-Algorithmus, 258 Randomisierte Algorithmen, 369 Rechenzeit Average-Case, 8 Best-Case, 8 Worst-Case, 8 Reduktion, polynomielle, 338 Rekursion, 21 Rekursionsgleichungen, 22 Anfangsbedingungen, 22, 127 charakteristisches Polynom, 128 Full History, 122, 218 homogen, 127 linear, 127 Relaxieren, 194 Repeats, 282 Rotationen doppelte Links-, 134 doppelte Rechts-, 134 einfach Links-, 131 einfach Rechts-, 133
Sachverzeichnis 389 Splay-Tree-, 143 Rucksack-Problem, 352 Satz von COOK, 339 Schönhage-Strassen-Algorithmus, 326 Secondary Clustering, 166 Selection-Sort, 207 Sentinel, 206 Set-Matching-Problem, 269 Shellsort, 213 Shift, 245 Single Source Shortest Path Problem, 190 Sohn, 71 Sortier-Algorithmen, 203 Sortieren, 203 externes, 229 optimale Anzahl Vergleiche, 214 Sortiernetzwerke, 235 Speicherabbildungsfunktion, 28 lexicographisch, 28 sequentiell, 28 Stack, 56 streng zusammenhängend, 70 String-Algorithmen, 245 String-Matching, 245 Boyer-Moore-Algorithmus, 264 Knuth-Morris-Pratt-Algorithmus, 249 mit endlichen Automaten, 246 String-Matching-Automat, 246, 247 String-Matching-Problem, 245 Suchbaum-Eigenschaft, 115 Suffix-Bäume, 83, 270 implizit, 273 kompakt, 272 Suffix-Funktion, 247 Suffix-Link, 277 Syntax der Modell-Programmiersprache, 383 t-närer Baum, 71 Teilbaum, 71 Teilmengensystem, 302 Tiefensuche, 88 Baumkanten, 92, 97 Querkanten, 97 Rückwärtskanten, 92, 97 Vorwärstkanten, 97 topologisches Sortieren, 62 Transformationen, 309 Traversieren, 84 von Bäumen, 110 Inorder, 84 Postorder, 84 Preorder, 84 von Bäumen, Inorder binäre Suchbäume, 124 von Graphen, Breitensuche, 99 von Graphen, Tiefensuche, 88 Trie, 157 Turingmaschine, 335 akzeptierte Sprache, 336 Konfiguration, 336 Ukkonen-Algorithmus, 273 ungeordneter gewurzelter Baum, 71 Uniform Probing, 170 Union-Find-Problem, 103 Varianz, 36 Vater, 71 Verlustfaktor, 360 Wörterbuch, 113 geordnet, 113 statisch, 113 Wörterbuchproblem, 113 Wahrscheinlichkeiten-Erzeugendenfunktion, 12 Wahrscheinlichkeit, 9 bedingte, 9 Wahrscheinlichkeitsverteilung, 9 Wald, 94 Weg, 69, 70 While-berechenbar, 5 Wiederholungen in Wörtern, 282 Worst-Case, 8 Wurzel, 70 Zielfunktion, 304 Zufallsexperimenten, 9 Zufallsvariable, 9 Erwartungswert, 10 geometrisch verteilt, 35 Varinaz, 36 zusammenhängend, 70 Zusammenhangskomponente, 92 Zweierturm-Funktion, 106
Literaturverzeichnis PlatLzha [AHU83] [AVL62] [BB03] [BEY98] [BM72] [CL04] AHO, ALFRED V., JOHN E. HOPCROPF und JEFFREY D. ULLMAN: Data Structures and Algorithms. Addison-Wesley, 1983. ADEL SON-VELSKII, G. M. und Y. M. LANDIS: An algorithm for the organization of information. Dokl. Akad. Nauk SSSR, 146:263 266, 1962. English translation in Soviet Math. Dokl 3, pp. 1259-1262,. BÖCKENHAUER, HANS-JOACHIM und DIRK BONGARTZ: Algorithmische Grundlagen der Bioinformatik. Teubner, 2003. BORODIN, ALLAN und RAN EL-YANIV: Onliune Computation and Competetive Analysis. Cambridge University Press, 1998. BAYER, R. und E. M. MCCREIGHT: Organization and maintenance of large ordered indices. Acta Informatica, 1(3):173 189, 1972. CHARRAS, CHRISTIAN und THIERRY LECROQ: Handbook of Exact String-Matching Algorithms. King s College Publications, 2004. [CLRS03] CORMEN, THOMAS H., CHARLES E. LEISERSON, RONALD L. RIVEST und CLIFFORD STEIN: Introduction to Algorithms. MIT Press, 2. Auflage, 2003. [Coo71] [FS09] [GJ79] [GKP94] [Gus97] COOK, STEPHEN A.: The Complexity of Theorem Proving Procedures. Annual ACM Symposium on Theory of Computing (STOC), Seiten 151 158, 1971. FLAJOLET, PHILIPPE und ROBERT SEDGEWICK: Analytic Combinatroics. Cambridge University Press, 2009. GAREY, MICHAEL R. und DAVID S. JOHNSON: Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman and Company, 1979. GRAHAM, RONALD L., DONALD E. KNUTH und OREN PATASHNIK: Concrete Mathematics. Addison-Wesley, 2. Auflage, 1994. GUSFIELD, DAN: Algorithms on Strings, Trees, and Sequences. Cambridge University Press, 1997. [Hof95] HOFRI, MICHA: Analysis of Algorithms. Oxford University Press, 1995. [Hro01] HROMKOVIČ, JURAY: Algorithms for Hard Problems. Springer, 2001. [Juk08] JUKNA, STASYS: Crashkurs Mathematik. Teubner Verlag, 2008. [Kem84] [Knu97] KEMP, RAINER: Fundamentals of the Average Case Analysis of Particular Algorithms. John Wiley & Sons, 1984. KNUTH, DONALD E.: The Art of Computer Programmung / Fundamental Algorithms,Band1. Addison-Wesley, 3. Auflage, 1997. M. Nebel, Entwurf und Analyse von Algorithmen, DOI 10.1007/978-3-8348-2339-7, Vieweg+Teubner Verlag Springer Fachmedien Wiesbaden 2012
392 Literaturverzeichnis [Knu98] KNUTH, DONALD E.: The Art of Computer Programmung / Sorting and Searching, Band3. Addison-Wesley, 2. Auflage, 1998. [Mah92] MAHMOUD, HOSAM M.: Evolution of Random Search Trees. John Wiley & Sons, 1992. [Neb12] [Ott98] NEBEL, MARKUS E.: Formale Grundlagen der Programmierung. Vieweg + Teubner Verlag, 2012. OTTMANN, THOMAS (Herausgeber): Prinzipien des Algorithmenentwurfs. Spektrum Verlag, 1998. [Sch] SCHNORR, CLAUS-PETER: Skript zur Vorlesung Theoretische Informatik 1. Universität Frankfurt. [Sch01] SCHÖNING, UWE: Algorithmik. Spektrum Verlag, 2001. [Sch08] SCHÖNING, UWE: Theoretische Informatik kurz gefasst. Spektrum Verlag, 5. Auflage, 2008. [Sed83] SEDGEWICK, ROBERT: Algorithms. Addison-Wesley, 1983. [Sed02] SEDGEWICK, ROBERT: Algorithms in C++, Part5 Graph Algorithms. Addison-Wesley, 3. Auflage, 2002. [SF96] SEDGEWICK, ROBERT und PHILIPPE FLAJOLET: An Introduction to the Analysis of Algorithms. Addison-Wesley, 1996. [Ski08] SKIENA, STEVEN S.: The Algorithm Design Manual. Springer, 2008. [ST85] SLEATOR,DANIEL D. und ROBERT E. TARJAN: Self-adjusting binary search trees. Journal of the ACM, 32(3):652 686, 1985. [SW] SCHNITGER, GEORG und MAIK WEINARD: Skript zur Vorlesung Theoretische Informatik 1. Universität Frankfurt. [Tar83] TARJAN, ROBERT E.: Data Structures and Network Algorithms. Society for Industrial and Applied Mathemtics, 1983. [Van01] VANDERBEI, ROBERT J.: Linear programming: foundations and extensions. Springer, 2. Auflage, 2001. [Vaz98] VAZIRANI, VIJAY V.: Approximation Algorithms. Springer, 1998. [Wei07] WEISS, MARK A.: Data Structures and Algorithms in Java. Pearson Education, 2. Auflage, 2007. [Wil93] WILF, HERBERT S.:generatingfunctionology. Academic Press, 2. Auflage, 1993. [Wir96] WIRTH, NIKLAUS: Algorithmen und Datenstrukturen mit Modula-2. Teubner Verlag, 5. Auflage, 1996.