zum Inhalt springen

Quicksort

Links:

http://de.wikipedia.org/wiki/Sortierverfahren

http://de.wikipedia.org/wiki/Quicksort

 

C++ Quellcode

#include<iostream>
using namespace std;

// *****************************
// Quicksort
// *****************************
void quicksort(int* A, int l, int r)
{
    int i=l-1, j=r, v=A[r];
    if(r > l)
    {
        while(1)
        {
            do i++; while(A[i] < v);
            do j--; while(A[j] > v);
            if(i >= j) goto PIVOT;
            swap(A[i],A[j]);
        }

        PIVOT:
        swap(A[i],A[r]);
        quicksort(A,l,i-1);
        quicksort(A,i+1,r);
    }
}

// *****************************
// ... los geht's!
// *****************************
int main()
{
    int A[]={8,5,1,7,4,2,6};
    int n=sizeof(A)/sizeof(int);
    quicksort(A,0,n-1);

    for(int k=0; k<=n-1; k++)
        cout << A[k] << " ";
}