# Quicksort



## Ruderer1993 (5. Okt 2011)

Hey ich schreibe morgen eine Klausur über Sortieralgorithmen. Ich denke ich kann soweit alles und kann auch Quicksort, SelectionSort etc in Java implementieren und habe auch verstanden wie diese funktionieren. 

Mein Lehrer nimmt gerne solche Aufgaben, in denen man den Code Zeile für Zeile erklären muss...

Nun ja ich habe jetzt hier mal die Methode des Quicksort Algorithmus... ich versuche einfach mal meine Erklärung zu geben, und würde mich sehr freuen wenn ihr mir sagt ob das soweit richtig ist, oder nicht, bzw was noch fehlt.

Danke !


```
public void quicksort(int start, int end) { //Methode mit den Übergabeparamatern start und end
int i = start; //Laufvariablen erhalten die Werte der Übergabeparameter
int k = end;

if(end - start >=1) {//HIER bin ich mir unsicher, wieso macht man diese Abfrage ? will man prüfen ob das Array nicht nur aus 1 Zahl besteht ?
int pivot = zahl[start]; // Die erste Zahl im Array wird als Pivot festgelegt

while (k>i) { //Solange die Indexe noch nicht aneinander vorbeigelaufen sind
while(zahl[i]<=pivot && i<=end && k>i) { // such solange bis du eine Zahl gefunden hast die kleiner ist als das Pivotelement, Gehe dabei alle Zahlen durch bis du eine kleinere Zahl gefunden hast
i++;
}
while(zahl[k]>pivot && k>=start && k>=i) { //Wenn du eine kleinere Zahl gefunden hast dann suche von der "rechten" Seite aus nach einer größeren Zahl
k--;
}
if(k>i) { //Falls i und k aneinenander vorbei sind tausche die beiden
tauschen(i,k);
}
}
tauschen(start,k); //tausche  start mit k => bewirkt das beim nächsten Durchlauf das Pivotelement neben den zwei Teillisten ist nämlich bei k
quicksort(start,k-1); //sortiere Teilliste 1
quicksort(k+1,end); // und Teilliste 2


}
else return; //
}
```


----------



## darekkay (5. Okt 2011)

```
if(end - start >=1) {//HIER bin ich mir unsicher, wieso macht man diese Abfrage ? will man prüfen ob das Array nicht nur aus 1 Zahl besteht ?
```

Was würde beim Aufruf quicksort(5,3) oder quicksort(1,1) passieren? Diese Fälle fängt man hiermit ab


----------



## Ruderer1993 (5. Okt 2011)

ah ok alles klar, aber sonst alles richtig ? also habe ich es richtig verstanden ?


----------



## timbeau (6. Okt 2011)

Es sieht nicht schlecht aus. Was ich immer sehr hilfreich fand an der Uni, waren viele Ausgaben. Wo sind die Indizes gerade, was wird getauscht usw. 

Klar, man kann auch alles debuggen aber mit ein paar guten sysouts wird vieles klarer.


----------

