Algorithmik: Lernvorschläge
-
Hallo zusammen.
Ich würde mich, nachdem ich mich jetzt soweit mal ein bisschen in C++ auskenne, gerne ein wenig mit verschiedenen Algorithmen beschäftigen. Nun ist ja jedem klar, dass das ein sehr weites Feld ist. Mich würde also folgendes interessieren:
- mit welcher Art von Algorithmen sollte ich anfangen (Graphen, Suchen, was auch immer) Häufigkeit und Nützlichkeit sollten hier die entscheidenden Faktoren sein.
- wo finde ich Informationen darüber? Wikipedia ist natürlich klar, aber da sollte man dann vorher wenigstens den Namen des Algorithmus kennen. Auszerdem würde mir ein Implementierungsbeispiel in C++ wohl sehr helfen, was bei Wikipedia ja nicht immer vorhanden ist.Zu 2: soweit ich weisz gibt es ein Buch namens "Algorithms in C++" oder so ähnlich. Ist dieses Buch zu empfehlen? Und zu welchen Onlineseiten würdet ihr mir raten? (aktuell sitze ich in Japan, da müsste ich mir die Bücher meistens aus dem Ausland schicken lassen, was sowohl Zeit als Geld kostet, von daher wäre mir eine halbwegs vernünftige Onlinealternative durchaus recht) Am liebsten wäre mir eine Art Kurs mit Erklärungen von der Basis an von einzelnen Algorithmen, Code Beispiel und Anwendungsbeispiel. Wenn er zudem noch jedesmal auf den vorherigen Lektionen aufbauen würde wäre es perfekt. Aber ob es sowas gibt...
Ich hoffe ich habe jetzt keinen FAQ Eintrag übersehen und dass die Frage wenigstens Sinn macht (als Anfänger sind ja "wie lerne ich am besten xy"-Fragen durchaus manchmal recht sinnfrei)
EDIT: die netten Listen auf http://en.wikipedia.org/wiki/List_of_algorithms und http://www.nist.gov/dads/#A sind mir auch bekannt, nur ist das so viel, dass ich erstens nicht weisz wo ich anfangen soll und zweitens mir wie gesagt die C++ Code-Beispiele fehlen)
-
Das ist eine gute Frage, wenn du mit Basisalgorithmen anfangen willst, empfehle ich dir "The Art of Computer Programming" Vol. 1-3 von Donald E. Knuth. Allerdings gibt es dort keine Beispiele in C++, sondern in einer, extra für das Buch entworfenen, Assemblersprache. Das Buch geht auch erst die mathematischen Grundlagen durch, die man zur Algorithmenanalyse brauchst. In dem Buch geht es wirklich um Basissachen wie Suchen, Sortieren, etc. Allerdings sehr genau analysiert.
Willst du generell größere Probleme lösen, schau dir Algorithmen zur dynamischen Programmierung, Backtracking und lokaler(, heuristischer) Suche an. Eventuell wirst du ein paar Vorlesungsskripte von Universitäten anschauen müssen. Auch hier ist es wohl eher die Ausnahme sowas in C++ zu finden, als viel mehr in einer Pseudoprogrammiersprache (meistens eine eher mathematischere Formulierung). Ein konkretes Buch kann ich dir hierfür aber nicht empfehlen, höchstens vielleicht ein Vorlesungsskript meiner Uni: http://www.algo.informatik.tu-darmstadt.de/lehre/2006ws/FOC/material.html (allerdings auch wieder ohne Quelltext)
-
"The Art of Computer Programming" ist zwar DIE Bibel schlechthin fuer Algorithmen, aber als Anfaenger wuerd ich mit leichterer Kost anfangen. Wer keine Ahnung von Physik und Mathe hat und was ueber Naturwissenschaften wissen will, faengt ja auch nicht mit theoretischer Physik an

Der Sedgewick ("Algithmen in C++", gibts aber auch fuer Pascal, C und Java) ist nicht schlecht als Einstieg, hier auf c++.de findest du unter "Buecher" auch dieses und zwei, drei andere Buecher zum Thema vorgestellt. Wenn Buecher zu teuer sind, wuerd ich auch schauen ob du an Unis was finden kannst. Evtl. ist das hier was fuer dich:
http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/CourseHome/index.htm
(EDIT: unter "Lecture Notes" findest Video-Aufnahmen der Vorlesung)
-
Vielen Dank, ich werde mir die Links mal vornehmen. Wenn das Algorithmen in C++ Buch gut ist bestell ich's mir dann trotzdem vermutlich mal. Eigentlich hatte ich gehofft, etwas online zu finden, das mich die nächsten 3 Monate bis ich wieder zuhause bin noch beschäftigt um dann auf das Buch umzusteigen. Mal sehen.
Weitere Ideen stets willkommen.
-
Shinja schrieb:
Vielen Dank, ich werde mir die Links mal vornehmen. Wenn das Algorithmen in C++ Buch gut ist bestell ich's mir dann trotzdem vermutlich mal. Eigentlich hatte ich gehofft, etwas online zu finden, das mich die nächsten 3 Monate bis ich wieder zuhause bin noch beschäftigt um dann auf das Buch umzusteigen. Mal sehen.
Weitere Ideen stets willkommen.
Wenn du dich durch die Uni-Vorlesungs-Links von Mehlvogel oder mir schlaegst, hast du in etwa den Stoff, der im Sedgewick steht. Ansonsten schau mal in die naechste Uni-Bibliothek. Viele Uni-Bibliotheken verleihen auch an Nicht-Studenten, und in der Regel lagern dort auch englisch-sprachige Buecher.
-
Hab ich schon hier, nein, alle Programmierbücher mono-Japanisch. Und dafür reicht mein Japanisch dann doch noch nicht.
Ich geh mal durch die Uni-Vorlesungen durch. Wird hoffentlich spaszig, hehe. Wenn ich was nicht verstehe und auch aikipedia nichts hilft weisz ich ja, wo ich nachfrage.