Um eine (einfach) verkettete Liste mit C++ zu Sortieren gibt es unterschiedliche Ansätze. Ich habe die letzte Woche in einer Aufgabe im Rahmen meiner Algorithmik Vorlesung folgende Sortierungsfunktion implementiert, welche das Prinzip von Bubblesort verwendet. Achtung: Bubblesort ist ein Algorithmus, den man nicht in einer Anwendung verwenden solle. Bubblesort gehört mit eine sehr schlechte Laufzeit.
Ich habe eine interessante Webseite gefunden, welche sich mit dem teilweise witzigen und komischen Verhalten von C bzw. dem Compiler (GCC sowie Microsoft VC) befasst.
Ein beliebtes Beispiel für rekursives Programmieren ist das 1883 vom Mathematiker Eduard Lucas erfundene (Mathematik-)Denkspiel “Die Türme von Hanoi“.
Das Spiel besteht darin, einen Stapel A von verschieden großen Scheiben, welche der Größe nach sortiert sind, auf einen Stapel C mithilfe eines “Zwischenlager”-Stapel B zu bewegen ohne dabei eine größere Scheibe auf eine kleinere Scheibe zu legen. Am Ende muss auf dem Stapel C die selbe geordnete Reihenfolge vorliegen, wie auf dem Ursprungs-Stapel A.
Ja, man würde vielleicht vermuten, dass es überhaupt keine Schwierigkeit ist, herauszufinden ob eine Zahl eine Primzahl ist oder nicht. Es soll jedoch Leute geben, die sich damit schwer tun (und zufälligerweise des öfteren neben mir in den Vorlesungen sitzen).
Deswegen von mir (auch wenn man dieses Problem wohl niemals rekursiv lösen würde) der entsprechende Source-Code dazu:
int isPrime(int num, int i) { if (num == 0) return 0; if (i*i num) return 1; if ((num%i) == 0) return 0; return isPrime(num, (i+1)); }