Frage von profil10, 5

Kennt jemand ein paar gute Webseiten, wo man Algorithmen lernen und üben kann?

Wir haben die letzten male im Kurs Algorithmen in BASIC "gelernt" mehr oder weniger.
Ich blicke da noch nicht so ganz durch.
Kann mir jemand helfen?

Antwort
von Eismensch, 2

Ein Algorithmus ist eine Art "Funktion", ein "Ablauf" mit einem bestimmten Resultat. Eine "eindeutige Handlungsvorschrift zur Lösung eines Problems".

Zum "üben" oder "lernen" gibts da nicht viel. Zumindest nicht ohne genauere  Informationen.

Du müsstest uns schon mitteilen was genau du wissen möchtest. Es gibt z.B. Webseiten, welche dir verschiedene Sortieralgorithmen erklären. 

Kommentar von grtgrt ,

Wo es ums Sortieren geht, spielt heute nur noch der sog. B*Baum eine Rolle: http://www-lehre.informatik.uni-osnabrueck.de/~dbs/2001/skript/node30.html .

Er nämlich ist allen anderen Sortieralgorithmen haushoch überlegen und gilt daher als eine sehr wichtige Erfindung, die jeder Informatiker kennen sollte. Das Prinzip, das ihm zugrunde liegt, ist denkbar einfach. Es sagt: Wenn im Baum zusätzliche Knoten benötigt werden, so dürfen die nur durch Aufspaltung seiner Wurzel entstehen. 

Kommentar von grtgrt ,

Korrektur: Der oben fett gedruckte Satz muss lauten:

Wenn ein Teilbaum (z.B. der Baum selbst) tiefer werden muss, dann nur, weil man seine Wurzel in zwei Knoten zerlegt und unter sie eine neue Wurzel setzt.

Natürlich ist auch jedes Blatt des Baumes Teilbaum in diesem Sinne.

Kommentar von Eismensch ,

Ob ein Algo effektiv ist oder nicht spielt im Lernprozess keinerlei Unterschied. Es geht zu keinem Zeitpunkt darum dir zu zeigen, dass z.B. Bubblesort total gut ist. Es geht darum die Grundzüge zu erklären und ein Verständnis zu entwickeln.

zum Thema B*Baum: Ja diese Implementierung von binären Suchbäumen ist schnell, aber zu sagen "der Rest spielt keine Rolle" ist grob Fahrlässig und schlichtweg falsch. Verschiedene Suchalgorithmen haben unterschiedliche Anwendungsfälle. Je Nachdem was du gedenkst zu machen, eigenen sich andere Algorithmen.

Schau doch mal hier zum Thema Komplexität hier: http://bigocheatsheet.com/

Antwort
von grtgrt, 2

Lies z.B. http://www.inf.fu-berlin.de/lehre/SS01/alp2/skript/ALP2K2.pdf .

Noch viel mehr findest du online im Buch http://algs4.cs.princeton.edu/home/ . Es gibt dort sogar Java Code dazu.

Kommentar von grtgrt ,

Aber sei dir bewusst: In der Praxis wirst du Algorithmen zur Lösung deiner Aufgaben stets selbst entwickeln müssen (die in Büchern gefundenen werden selten wirklich passen).

Kommentar von grtgrt ,

So wird z.B. in jeder Vorlesung über Algorithmen wird zunächst mal mit Sortieralgorithmen begonnen - meist ohne dem Studenten zu sagen, dass es in der Praxis völlig falsch wäre, noch selbst einen Sortieralgorithmus zu implementieren: Es reicht, die zu sortierenden Werte in einen Container zu schreiben, der sie sortiert ausgeben kann (z.B. in einen Container vom Typ Hashmap oder BTree).

Konsequenz daraus: 

Welchen Algorithmus auch immer du dir zum Lernen ansiehst, ist nicht wirklich wichtig. Viel wichtiger ist, ein Gefühl dafür zu bekommen, wie man selbst die Algorithmen entwickelt, die man dann im konkreten Fall braucht, da sie vorher noch niemand sonst entwickelt und publiziert hat.

Kommentar von grtgrt ,

Du kannst auch - in dem Fall ganz ohne Kosten - einen Online Kurs belegen: https://www.coursera.org/learn/introduction-to-algorithms .

Keine passende Antwort gefunden?

Fragen Sie die Community