#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);
}