Quick Sort Description
Quick Sort Description
The quicksort is considered to be very efficient, with its "divide and conquer" algorithm.
This sort starts by dividing the original array into two sections (partitions) based upon the
value of the first element in the array. Since our example sorts into descending order, the
first section will contain all the elements greater than the first element. The second section
will contain elements less than (or equal to) the first element. It is possible for the first
element to end up in either section.
This sort uses recursion - the process of "calling itself". Recursion will be studied at a
later date.
QUICKSORT(A,p,q)
if(p < q)
then r = PARTITION(A,p,q)
QUICKSORT(A,p,r-1)
QUICKSORT(A,r+1,q)
PARTITION(A,p,q)
x = A[p]
i=p
for j = p+1 to q
if A[j] <= x
then i = i+1
swap A[i] with A[j]
swap A[p] with A[i]
return i
#include <iostream>
int main()
{
int A[10]={6,10,13,5,8,3,2,25,4,11};
int p=0,q=10;
cout<<"======Original======="<<endl;
for(int f=0; f<10; f++)
cout<<A[f]<<endl;
quickSort(A,p,q);
cout<<"======Sorted======="<<endl;
for(int f=0; f<10; f++)
cout<<A[f]<<endl;
}
temp= A[p];
A[p]=A[i];
A[i]=temp;
return i;
}