Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void quicksort(int a[], int l, int r){ //a=Array, l=linker Rand, r=rechter Rand
- if(r>l){ //solange mehr als 1 Folgenelement existiert
- int i=l-1, j=r, tmp; //Variableninitialisierung mit Folgenrändern
- for(;;){ //Endlosschleife; bricht ab, wenn i>=j
- while(a[++i]<a[r]); //inkrem., bis größeres Element gefunden wird
- while(a[--j]>a[r] && j>i); //dekrem., bis kleineres Element gefunden wird
- if(i>=j) break; //brich ab, wenn sich die Folgenzeiger treffen
- tmp=a[i]; a[i]=a[j]; a[j]=tmp; //tausche kleineres mit größerem Element
- }
- tmp=a[i]; a[i]=a[r]; a[r]=tmp; //tausche Trennelement
- quicksort(a, l, i-1); //rekursiver Aufruf für linke Teilfolge
- quicksort(a, i+1, r); //rekursiver Aufruf für rechte Teilfolge
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement