Informatika gyűjtemény

NézetNyomtat

Gyorsrendezés

Kattintásra indul a rendezés.
void QuickSort(int T[], int lo0, int hi0) {
    int lo = lo0;
    int hi = hi0;
    int mid;

    if ( hi0 > lo0){
        mid = T[ ( lo0 + hi0 ) / 2 ];
        while( lo <= hi ) {
            while( ( lo < hi0 ) && ( T[lo] < mid )) ++lo;
            while( ( hi > lo0 ) && ( T[hi] > mid )) --hi;
            if( lo <= hi ){
                swap(T, lo, hi);
                ++lo;
                --hi;
            }
        }
        if( lo0 < hi ) QuickSort( T, lo0, hi );
        if( lo < hi0 ) QuickSort( T, lo, hi0 );
    }
}

void swap(int T[], int i, int j) {
    int tmp= T[i]; T[i] = T[j]; T[j] = tmp;
}

void sort(int T[]) {
    QuickSort(T, 0, T.length - 1);
}