C++ Program for QUICK SORT
C++ Program for QUICK SORT.
/**************************************************************	
	Author: Arun Vishnu M V
	Web: www.arunmvishnu.com
	Description: C++ Program for QUICK SORT.
***************************************************************/
#include  	
#include 
#include  
void quickSort(int numbers[], int array_size);
void q_sort(int numbers[], int left, int right);
int numbers[150];
int main()
{
   clrscr();
   int i,n;
   cout<<"How many numbers you want to sort: ";
   cin>>n;
   cout<<"Enter "<>numbers[i];
//perform quick sort on array
   q_sort(numbers,0,n-1);
   cout<<"Numbers are sorted\n";
   for (i = 0; i= pivot) && (left < right))
      right--;
      if (left != right)
      {
	 numbers[left] = numbers[right];
	 left++;
      }
      while ((numbers[left] <= pivot) && (left < right))
	 left++;
      if (left != right)
      {
	  numbers[right] = numbers[left];
	  right--;
      }
   }
   numbers[left] = pivot;
   pivot = left;
   left = l_hold;
   right = r_hold;
   if (left < pivot)
      q_sort(numbers, left, pivot-1);
   if (right > pivot)
      q_sort(numbers, pivot+1, right);
}
//---------------------- END--------------------
     

 
																			
Hi.
I need to find out a bug in the partition function of the quick sort in following program but i am not able to find it out.Can you help me.
void partition (int a[ ], int n) {
int pivot = a[0];
left = 0;
right = n-1;
while (left = pivot) right–;
if (left != right)
{
a[left] = a[right];
left++;
}
while (a[left] < pivot) left++;
if (left != right)
{
a[right] = a[left];
right–;
}
}
a[left] = pivot;
}
Hii Shilpi,
I am sorry, I didt gt time to go through the code.I am @ office and bsy now..
one error is: while (left = pivot) .. condition inside the while lop is
while (left == pivot)
i just wanna ask u that y u ve given the function prototype void quickSort(int numbers[], int array_size);
since it is not being used in prog.
great code.so helpful.
great code it is
I support you Anshul. There is no use of void quickSort(…); at all.
while (left = pivot) && (left < right))
right–;
if (left != right)
{
numbers[left] = numbers[right];
left++;
}
while ((numbers[left] <= pivot) && (left < right))
left++;
if (left != right)
{
numbers[right] = numbers[left];
right–;
can u please explain d code in detail… how it works everything?