Total Tayangan Halaman

Sabtu, 31 Desember 2011

Quick Sort Rekursif

#include <iostream>
using namespace std;
int Data[50],MAX;
void QuickSortRekursif(int L, int R);
void Tukar (int *a, int *b);

int main()
{
    int i;
    cout<<"\n\tMASUKKAN JUMLAH DATA : ";cin>>MAX;
    cout<<"\n\tMASUKKAN DATA SEBELUM TERURUT\n\n";
    for(i=0; i<MAX; i++)
    {
        cout<<"\t\t>>  ";cin>>Data[i];
    }
    int L=0,R;
    R=MAX-1;
    QuickSortRekursif(L,R);
    cout<<"\n\tDATA SETELAH TERURUT\n\n\t\t";
    for(i=0; i<MAX; i++)
    {
        cout<<" "<< Data[i];
    }
    cout<<endl<<endl;
    system("pause");
}
void Tukar (int *a, int *b)
{
    int temp;
    temp = *a;
    *a = *b;
    *b = temp;
}

void QuickSortRekursif(int L, int R)
{
     int i, j, x;
     x = Data[(L+R)/2];
     i = L;
     j = R;
     while (i <= j)
     {
           while(Data[i] < x)
           i++;
           while(Data[j] > x)
           j--;
           if(i <= j)
           {
                Tukar(&Data[i], &Data[j]);
                i++;
                j--;
           }
     }
     if(L < j)
     QuickSortRekursif(L, j);
     if(i < R)
     QuickSortRekursif(i, R);
}

Tidak ada komentar:

Posting Komentar