ich bräuchte Anfängermaterial zum Thema Algorithmen und Datenstrukturen
in Verbindung mit C++/Java (kein C) und praktischen Anwendungsbeispielen
falls es sowas überhaupt gibt. Besonders Material zum Thema Quicksort,
Bresenham,Bubblesort,Juliamenge,Mandelbrot,genetische Algorithmen,Apfel-
menge,Optimierung von Algorithmen,Bäume .....welche Anhand von Codebei-
spielen, in C++ oder Java versteht sich, erklärt werden.
Wirth:Algorithmen und Datenstrukturen wollte ich mir z.B. nicht kaufen
da Beispiele in Pascal(Na mal sehen vielleicht doch - is´ ja eigentlich
so ´ne Art Bibel).Sedgewick`s "Algorithmen in C++" auch nicht unbe-
dingt da vom Grundwissen her doch ganz schön happig (find ich).Oder
sollte ich mir diese 2 Bücher doch kaufen ?
Ich bräuchte so eine Art "sanften" Einstieg - kein Hardcorestuff.
Wer gewisse Bücher im Sinn hat oder auf andere Dokumente verweisen kann
hat meine ewige Dankbarkeit.
Auch wer in E-Mail Kontakt zu diesem Themen mit mir treten möchte kann
das tun um mir eventuell mal eine Frage beantworten zu können.Dafür
wäre ich auch sehr dankbar denn ich brauch die Info´s unbedingt.
Dank an alle Antworten voraus.
Gruß Oliver
Oliver...@telekom.de (NICHT T-ONLINE)
oder:
TheUnch...@gmx.de (beide Adressen werden jeden Tag abgefragt)
ich habe mal ein Buch mit dem Titel
"Suchen und Sortieren in Java" gesehen. War recht duenn,
und wohl auch nicht sehr teuer.
Ich habe allerdings nicht verstanden, ob Du schon Java bzw. C++
kannst, oder ob Du mit einem Buch Algorithmen, Datenstrukturen und
Java-Programmierung erlernen willst.
Falls ersteres der Fall ist, ist es doch egal, welche Darstellung im
Algorithmenbuch benutzt wird, falls zweiters, weiss ich nicht, ob es ein
Buch gibt, das beide Themen ausfuehrlich behandelt.
--
Andreas Schoolmann
mailto: sch...@ibr.cs.tu-bs.de
http://www.cs.tu-bs.de/~school
es ist zwar praktisch, wenn man Algorithmenbücher hat, die den Quelltext
in der Sprache haben, in der man selbst programmieren will. Die meisten
Bücher entscheiden sich aber für eine Pseudosprache, die einfach zu
erklären ist. Die meisten realen Programmiersprachen haben eine ziemlich
aufwendige Beschreibung, ungeeignet zur Aufnahme innerhalb eines Buches
über andere Themen. Deshalb sind die meisten Bücher dieser Art auch zu
gebrauchen, wenn man auf andere Programmiersprachen wechselt.
Ein anderer Grund ist, dass es für die meisten viel verwendeten Sprachen
mittlerweile Bibliotheken mit den wichtigsten Datenstrukturen gibt, man
muss sie nicht mehr selbst programmieren, sondern kann sich auf
Verstehen und Anwendung beschränken.
Ein weiteres Buch kann ich noch empfehlen: Ottmann, Widmeyer:
Algorithmen und Datenstrukturen (BI Verlag, soweit ich weiss). Dies ist
ein Lehrbuch, das für das Gundstudium Informatik geeignet ist. Es ist
auch Theorie drin mit Beweisen, aber ziemlich sparsam, ein Lehrbuch
halt.
Einen sanften Einstieg, das kann man auf verschiedene Arten
interpretieren. Entweder mag man keine theoretischen Beweise oder man
mag keine bis ins letzte Detail ausgefeilten Implementationen für eine
bestimmte Sprache. Ein gutes Buch über Algorithmen und Datenstrukturen
beinhaltet meiner Meinung nach wenigstens die Beweise der wichtigsten
Tatsachen. Wenn man nur anwendet, kann man die Beweise überlesen und
einfach auf die bewiesenen Eigenschaften aufbauen. Man sollte die
wichtigsten Ergebnisse aus der Theorie kennen, z.B. untere Schranke zum
Sortieren, und man sollte schon verstehen, welche prinzipiellen
Konsequenzen die Auswahl bestimmter Algorithmen und Datenstrukturen auf
Speicherverbrauch und Laufzeit haben, und falls man selbst mal eine
Datenstruktur abwandeln muss, schadet es auch nicht, die Hintergründe zu
verstehen. Ohne ein bisschen Theorie kommt man leicht in die Gefahr
Dinge zu tun, die bewiesenermassen unmöglich sind, oder in allen
bekannten Fällen nutzlos sind.
Wenn man eine Sprache lernt, dann ist es eine gute Übung, die einfachen
Datenstrukturen wie Listen, Bäume und die einfachen Algorithmen, diverse
Sortieralgorithmen, selbst zu implementieren mit Hilfe einer
Pseudo-Beschreibung aus einem Buch. Dabei lernt man die Sprache kennen
und auch das, was man programmiert.
Juliamenge, Apfelmännchen, Mandelbrot sind Dinge aus der Chaostheorie,
mit gewisser Nähe zur Numerik, da mit Zahlenfolgen gearbeitet wird. Zum
Glück entzieht sich das Chaos weitgehend jeder analytischen
Herangehensweise. Aber es gibt immer noch genug Hardcore-Stuff auf
diesem Gebiet.
Genetische Algorithmen sind spezielle Algorithmen, für die man schon
etwas mehr Verständnis für das ganze Thema braucht, bevor man eigene
Versuche wagen kann.
Optimierung von Algorithmen ist auch ein fortgeschritteneres Thema. Man
kann es auf vielen Ebenen betreiben, auf Implementierungsebene, aber
auch auf konzeptioneller Ebene, es dürfte ein ziemlich großes Gebiet
sein, wo man auch beliebig tief einsteigen kann.
Es wird keinen Hauruck-Crashkurs geben, mit dem man all das in nur zwei
Wochen in den Schädel bekommt, es sei denn man wird beliebig
oberflächlich. Der ganze Stoff zusammen dürfte so in etwa einem
Schwerpunkt im Grunstudium in Prakt. Informatik garniert mit Auszügen
aus dem Hauptstudium entsprechen, aus meiner Erfahrung abgeschätzt, ohne
entmutigen zu wollen, aber bei der Wahrheit zu bleiben. Nur wenn man mit
etwas Tiefgang den Kram durchgeht, kann man ihn auch später sicher
anwenden.
Ciao,
Bernd Strieder
> Sedgewick`s "Algorithmen in C++" auch nicht unbe-
> dingt da vom Grundwissen her doch ganz schön happig (find ich).Oder
> sollte ich mir diese 2 Bücher doch kaufen ?
Auf das Wirth-Buch würde ich heutzutage getrost verzichten, aber das
Sedgewick-Buch ist sehr empfehlenswert (zumindest die C-Version -- die
C++-Version kenne ich nicht aus eigener Anschauung).
Zum `Grundwissen': Man könnte etwas bösartig sagen, daß es wohl kaum
Bücher gibt, die den Einstieg viel einfacher und verständlicher und
dabei genauso korrekt machen, als das von Sedgewick. Ganz ohne
Mitdenken kommt man bei solchen Sachen eben auf keinen grünen Zweig,
und wenn das bedeutet, daß man einen Abschnitt eben zweimal oder öfter
liest, bis man ihn verstanden hat, dann läßt sich das kaum
ändern. Ehrenrührig ist es jedenfalls nicht.
Anselm
--
Anselm Lingnau ......................... lin...@tm.informatik.uni-frankfurt.de
Man no sooner discovers a new intelligence than he tries to involve it in his
own stupidity. -- Jacques-Yves Cousteau