eXamen.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