using namespace std;
void QuickSort(int array[], int low, int high);
int Partition(int array[], int i, int j);
void PrintArray(int array[], int n);
int main(int argc, char* argv[])
{
int numArray[] = {49,38,65,97,76,13,27,49};
int n = sizeof(numArray)/sizeof(numArray[0]);
cout<<"Original array:/n";
PrintArray(numArray,n);
QuickSort(numArray,0,n-1);
cout<<"After sorted:/n";
PrintArray(numArray,n);
return 0;
}
int Partition(int array[], int i, int j)
{
int pivot = array[i];
while (i<j)
{
while (array[j]>=pivot && i<j)
{
j--;
}
if (i<j)
{
array[i] = array[j];
/* array[j] = pivot;*/
i++;
}
while(array[i]<=pivot && i<j)
{
i++;
}
if (i<j)
{
array[j] = array[i];
/* array[i] = pivot;*/
j--;
}
}
array[i] = pivot;
return i;
}
void QuickSort(int array[], int low, int high)
{
int pivotPos;
if (low<high)
{
pivotPos = Partition(array,low,high);
QuickSort(array,low,pivotPos-1);
QuickSort(array,pivotPos+1,high);
}
}
void PrintArray(int array[], int n)
{
for (int i=0;i<n;i++)
{
cout<<array[i]<<" ";
}
cout<<endl;
}