Table Of ContenteXamen.press
eXamen.press isteineReihe, dieTheorieund
Praxis ausallen Bereichen derInformatikfür
dieHochschulausbildungvermittelt.
·
Berthold Vöcking Helmut Alt
·
Martin Dietzfelbinger Rüdiger Reischuk
·
Christian Scheideler Heribert Vollmer
Dorothea Wagner
Taschenbuch der Algorithmen
123
Herausgeber:
Prof.Dr.rer.nat.BertholdVöcking Prof.Dr.rer.nat.HelmutAlt
LehrstuhlfürInformatik1 InstitutfürInformatik
(AlgorithmenundKomplexität) FreieUniversitätBerlin
RWTHAachen Takustr.9,14195Berlin
Ahornstr.55,52074Aachen
Prof.Dr.rer.nat.(USA)MartinDietzfelbinger Prof.Dr.math.RüdigerReischuk
InstitutfürTheoretischeInformatik InstitutfürTheoretischeInformatik
FakultätfürInformatikundAutomatisierung UniversitätzuLübeck
TechnischeUniversitätIlmenau RatzeburgerAllee160,23538Lübeck
Helmholtzplatz1,98693Ilmenau
Prof.Dr.rer.nat.ChristianScheideler Prof.Dr.rer.nat.HeribertVollmer
LehrstuhlfürInformatik14 InstitutfürTheoretischeInformatik
(EffizienteAlgorithmen) LeibnizUniversitätHannover
TechnischeUniversitätMünchen Appelstr.4,30167Hannover
Boltzmannstr.3,85748Garching
Prof.Dr.rer.nat.DorotheaWagner
InstitutfürTheoretischeInformatik
UniversitätKarlsruhe(TH)
AmFasanengarten5,76131Karlsruhe
ISBN 978-3-540-76393-2 e-ISBN 978-3-540-76394-9
DOI10.1007/978-3-540-76394-9
ISSN1614-5216
BibliografischeInformationderDeutschenNationalbibliothek
DieDeutscheBibliothekverzeichnetdiesePublikationinderDeutschenNationalbibliografie;
detailliertebibliografischeDatensindimInternetüberhttp://dnb.d-nb.deabrufbar.
©2008Springer-VerlagBerlinHeidelberg
DiesesWerkisturheberrechtlichgeschützt.DiedadurchbegründetenRechte,insbesonderediederÜber-
setzung,desNachdrucks,desVortrags,derEntnahmevonAbbildungenundTabellen,derFunksendung,
derMikroverfilmungoderderVervielfältigungaufanderenWegenundderSpeicherunginDatenverarbei-
tungsanlagen,bleiben,auchbeinurauszugsweiserVerwertung,vorbehalten.EineVervielfältigungdieses
WerkesodervonTeilendiesesWerkesistauchimEinzelfall nurindenGrenzendergesetzlichen Be-
stimmungendesUrheberrechtsgesetzes derBundesrepublikDeutschlandvom9.September1965inder
jeweilsgeltendenFassungzulässig.Sieistgrundsätzlichvergütungspflichtig.Zuwiderhandlungenunter-
liegendenStrafbestimmungendesUrheberrechtsgesetzes.
DieWiedergabe vonGebrauchsnamen, Handelsnamen, Warenbezeichnungen usw.indiesem Werkbe-
rechtigtauchohnebesondereKennzeichnung nichtzuderAnnahme,dasssolcheNamenimSinneder
Warenzeichen-undMarkenschutz-Gesetzgebung alsfreizubetrachtenwärenunddahervonjedermann
benutztwerdendürften.
SatzundHerstellung:le-texpublishingservicesoHG,Leipzig
Einbandgestaltung:KünkelLopkaWerbeagentur,Heidelberg
GedrucktaufsäurefreiemPapier
987654321
springer.com
Vorwort
Die InformatikalsWissenschaftderInformationsverarbeitunggewinntinfast
allen Lebensbereichen mehr und mehr an Bedeutung. Die weltweite Vernet-
zung durch das Internet hat diese Entwicklung noch einmal entscheidend be-
schleunigt. So sind die Errungenschaftender Informatik heute allgegenwärtig
in Produktion, Logistik, Verkehr, Medizin und in den Medien. Große wis-
senschaftliche Erfolge wie etwa die Sequenzierung des menschlichen Genoms
wären ohne die Informatik nicht möglich gewesen. Auch im privaten Bereich
scheint die Informatik omnipräsent zu sein. Ihre Errungenschaften stecken
nicht nur im häuslichen Computer. So gut wie alle modernen Haushaltsgerä-
te – von der Waschmaschine über den Toaster bis zum Fernseher – werden
durch eingebettete Systeme gesteuert. In fast jedem heute vom Band lau-
fenden PKW finden sich gleich mehrere eingebettete Systeme, die nicht nur
Motor und Bremssystem, sondern auch Klimaanlage und Fensterheber steu-
ern – in Zukunft wohl auch das automatische Einparksystem. Selbst bei der
zwischenmenschlichenKommunikationvertrauenwir uns mehr und mehr der
Informatik an, indem wir moderne Formen des Informationsaustausches wie
E-Mails und SMS nutzen.
Die rasante Entwicklung der Informatik, die wir in den letzten Jahrzehn-
tenbeobachtenkonntenunddiesichwahrscheinlichauchindernächstenZeit
unvermindert fortsetzen wird, ist nicht nur auf die stetig fortschreitende Ver-
besserungderHardware,sonderninsbesondereauchaufdiepermanenteNeu-
und Weiterentwicklung der Software in Form immer effizienterer Programme
zurückzuführen. Die größten Verbesserungen beruhen dabei auf neu entwi-
ckelten Algorithmen, hinter denen häufig clevere und kreative Ideen stecken.
Algorithmen sind geschickte Verfahren, die vorgegebene Probleme auf unter-
schiedlichste Weise lösen. Dabei handelt es sich nicht nur um mathematische
Aufgaben, die sich beispielsweise auf das Rechnen mit Zahlen beziehen, son-
dern auch um andere, ganz alltägliche Problemstellungen, bei denen räumli-
VI
cheOrientierung,logischerSpürsinnodergeschicktesVerhandelngefragtsind,
beispielsweise um Fragestellungen der folgenden Art:
• Wie lässt sich der kürzeste Weg zwischen zwei Orten ermitteln?
• WiesolltenSeeräubereineSchatzkarteaufteilen,bzw.Bankangestellteden
Geheimcode des Tresors?
• Wie können mehrere hungrige Partygäste einen Kuchen gerecht unterein-
ander aufteilen?
Dieses Buch unternimmt einen umfangreichen Streifzug durch die faszi-
nierende Welt der Algorithmen. Es verlangt keine besonderen Vorkenntnisse,
so dass Schülerinnen und Schüler ab der Mittelstufe und auch Informatik-
interessierte Laien neue und überraschende Einblicke gewinnen können. In
43 Artikeln von Informatikern, die an Universitäten im In- und Ausland leh-
ren, werden wichtige und besonders elegante Algorithmen anschaulich und
verständlich erklärt.
Die Initiative zur Erstellung einer derartigen Algorithmensammlung geht
zurück auf Professor Dr. Volker Claus aus dem Vorstand des Fakultätentags
Informatik, der Vereinigung der Informatikfakultäten an deutschen Univer-
sitäten. Seine Idee war es, im Informatikjahr 2006 wöchentlich einen Algo-
rithmusherauszugreifenunddiesenimInternetzupräsentierenmit demZiel,
Schülerinnen und Schülern zu vermitteln, welche kreativen Ideen und Kon-
zepte hinter Algorithmen stecken und welche Faszination von der Informatik
ausgehen kann. Diese Idee wurde in der Initiative Algorithmus der Woche
umgesetzt, in der Woche für Woche von März bis Dezember 2006 jeweils ein
Artikel ins Netz gestellt wurde. Für dieses Buch wurde jeder dieser Artikel
gründlich und umfassend überarbeitet. Die Autoren haben zahlreiche Ver-
besserungsvorschläge der Herausgeber aufgenommen und auch viele weitere
Ergänzungeneingebracht.InsbesonderewurdenQuerbezügezuanderenArti-
kelnderSammlungeingearbeitet,undamEndejedesArtikelsgibtesHinweise
auf weiterführende Literatur.
An der umfangreichen redaktionellen Arbeit zur Erstellung dieses Buches
haben insbesondere Marcel Ochel und Heiko Röglin mitgewirkt. An der re-
daktionellenArbeitzum Algorithmus der Woche,diedieGrundlagefürdieses
Buchgelegthat,warennebendiesenbeidenauchDirkBongartz,TorstenSatt-
ler, Katrin Twickler und Melanie Winkler beteiligt. Wir möchten allen Au-
toren und dem Redaktionsteam für ihr Mitwirken danken. Durch das große
Engagement aller Beteiligten ist unserer Meinung nach eine ausgesprochen
facettenreiche Sammlung von interessanten und informativen Artikeln ent-
standen, die die besondere Faszination der Informatik spürbar werden lässt.
Die Herausgeber im März 2008
Inhaltsverzeichnis
Teil I Suchen und Sortieren
Übersicht
Martin Dietzfelbinger, Christian Scheideler.......................... 3
1 Binäre Suche
Thomas Seidl, Jost Enderle ....................................... 7
2 Sortieren durch Einfügen
Wolfgang P. Kowalk.............................................. 15
3 Schnelle Sortieralgorithmen
Helmut Alt...................................................... 21
4 Paralleles Sortieren – Parallel geht schnell
Rolf Wanka ..................................................... 31
5 Topologisches Sortieren –
Mit welcher Aufgabe meiner ToDo-Liste fange ich an?
Hagen Höpfner .................................................. 43
6 Texte durchsuchen – aber schnell!
Der Boyer-Moore-Horspool Algorithmus
Markus E. Nebel ................................................. 51
7 Tiefensuche (Ariadne und Co.)
Michael Dom, Falk Hüffner, Rolf Niedermeier ....................... 61
8 Der Pledge-Algorithmus:
Wie man im Dunkeln aus einem Labyrinth entkommt
Rolf Klein, Tom Kamphans ....................................... 75
VIII Inhaltsverzeichnis
9 Zyklensuche in Graphen
Holger Schlingloff ................................................ 83
10 PageRank: Was ist wichtig im World Wide Web?
Ulrik Brandes, Gabi Dorfmüller.................................... 95
Teil II Rechnen, Verschlüsseln und Codieren
Übersicht
Berthold Vöcking ................................................105
11 Multiplikation langer Zahlen (schneller als in der Schule)
Arno Eigenwillig, Kurt Mehlhorn ..................................109
12 Der Euklidische Algorithmus
Friedrich Eisenbrand .............................................119
13 Das Sieb des Eratosthenes:
Wie schnell kann man eine Primzahlentabelle berechnen?
Rolf Möhring, Martin Oellrich .....................................127
14 Einweg-Funktionen:
Vorsicht Falle – Rückweg nur für Eingeweihte!
Rüdiger Reischuk, Markus Hinkelmann .............................139
15 Der One-Time-Pad-Algorithmus:
Der einfachste und sicherste Verschlüsselungsalgorithmus
Till Tantau .....................................................149
16 Public-Key-Kryptographie
Dirk Bongartz, Walter Unger ......................................157
17 Teilen von Geheimnissen
Johannes Blömer ................................................171
18 Poker per E-Mail
Detlef Sieling....................................................181
19 Fingerprinting
Martin Dietzfelbinger.............................................193
20 Hashing
Christian Schindelhauer ..........................................205
21 Fehlererkennende Codes: Was ist eigentlich EAN?
Alexander Souza, Angelika Steger ..................................213
Inhaltsverzeichnis IX
Teil III Planen, strategisches Handeln und Computersimulationen
Übersicht
Helmut Alt, Rüdiger Reischuk .....................................227
22 Broadcasting: Wie verbreite ich schnell Informationen?
Christian Scheideler..............................................229
23 Zahlen auf Deutsch aussprechen
Lothar Schmitz ..................................................237
24 Mehrheitsbestimmung – Wer wird Klassensprecher?
Thomas Erlebach ................................................245
25 Zufallszahlen: Wie kommt der Zufall in den Rechner?
Bruno Müller-Clostermann, Tim Jonischkat.........................255
26 Gewinnstrategie für ein Streichholzspiel
Jochen Könemann ...............................................267
27 Turnier- und Sportligaplanung
Sigrid Knust ....................................................275
28 Der Alphabeta-Algorithmus für Spielbäume:
Wie bringe ich meinen Computer zum Schachspielen?
Burkhard Monien, Ulf Lorenz, Daniel Warner .......................285
29 Die Eulertour
Michael Behrisch, Amin Coja-Oghlan, Peter Liske ...................295
30 Kreise zeichnen mit Turbo
Dominik Sibbing, Leif Kobbelt .....................................303
31 Gauß-Seidel Iteration
zur Berechnung physikalischer Probleme
Christoph Freundl, Ulrich Rüde....................................313
32 Dynamische Programmierung: Evolutionäre Distanz
Norbert Blum, Matthias Kretschmer................................323
33 Faires Teilen: Eine Weihnachtsstollengeschichte
Raimund Seidel..................................................331