Folgendes ist gegeben:
int part(int array[], int length);
Am Anfang ist das Pivotelement = array[0]. Nach der Ausführung dieser Funktion gilt folgendes: array[0]...array <=(kleiner-gleich) Pivotelement und array[i+1]...array[length-1] > Pivotelement. Und i ist der Rückgabewert dieser Funktion.
Fragen:
a) Was bewirkt diese Funktion, wenn das Array folgende Elemente beinhaltet: array[] = {3,5,4,1,6,2}?
b) Mithilfe dieser Funktion soll eine rekursive Sortierfunktion programmiert werden. Und man muss das Verhalten dieser neuen Sortierfunktion für das array[] angeben.
c) Die Funktion int part(int array[], int length) programmieren.
Meine Antwort zu der Frage a): Die Ziffer 3 ist das Pivotelement. Nach der Ausführung dieser Funktion stehen alle Elemente, die <3 sind links und >3 rechts. Nach der Ausführung müsste das Array so aussehen: {1,2,3,4,5,6}
Welchen Wert hat aber die Variable i und warum reicht array< Pivotelement nicht aus (ohne GLEICH)?
Bei b) habe ich leider im Moment keine Ideen wie ich das machen kann, weil ich den Rückgabewert von der Funktion part noch nicht verstehe.
Außerdem kann ich rekursive Funktionen zwar lesen und verstehen, aber ich verstehe nicht, wie man eine rekursive Funktion erfinden kann? Gibt es da einen Trick oder eine richtige Herangehensweise?
Frage c) versuche ich zu machen, wenn ich a) und b) verstanden habe.
Danke!