fork download
  1. #include<stdio.h>
  2.  
  3. void quicksort(int[],int,int);
  4. int partition(int[],int,int);
  5. void swap(int*,int*);
  6.  
  7. int main()
  8. {
  9. int n,i;
  10. printf("Enter Array size\n");
  11. scanf("%d",&n);
  12. int arr[n];
  13. printf("Enter the array element\n");
  14. for(i=0;i<n;i++)
  15. scanf("%d",&arr[i]);
  16. quicksort(arr,0,n-1);
  17. printf("after the Quick sort\n");
  18. for(i=0;i<n;i++)
  19. printf("%d\t",arr[i]);
  20. printf("\n");
  21. return 0;
  22. }
  23.  
  24. void quicksort(int arr[],int lb ,int ub)
  25. {
  26. if(lb<ub)
  27. {
  28. int pIndex = partition(arr,lb, ub);
  29. quicksort(arr,lb,pIndex-1);
  30. quicksort(arr,pIndex+1,ub);
  31. }
  32. }
  33.  
  34. int partition(int arr[],int lb ,int ub)
  35. {
  36. int pIndex =lb;
  37. int pivot=arr[ub];
  38. int i;
  39. for(i=lb;i<ub;i++)
  40. {
  41. if(arr[i]<pivot)
  42. {
  43. swap(&arr[i],&arr[pIndex]);
  44. pIndex++;
  45. }
  46. }
  47. swap(&arr[ub],&arr[pIndex]);
  48. return pIndex;
  49. }
  50.  
  51. void swap(int *x,int*y)
  52. {
  53. int temp=*x;
  54. *x=*y;
  55. *y=temp;
  56. }
  57.  
Success #stdin #stdout 0.02s 26060KB
stdin
Standard input is empty
stdout
#include<stdio.h>

void quicksort(int[],int,int);
int partition(int[],int,int);
void swap(int*,int*);

int main()
{
	int n,i;
    printf("Enter Array size\n");
	scanf("%d",&n);
	int arr[n];
	printf("Enter the array element\n");
	for(i=0;i<n;i++)
	scanf("%d",&arr[i]);
	quicksort(arr,0,n-1);
	printf("after the Quick sort\n");
	for(i=0;i<n;i++)
	printf("%d\t",arr[i]);
	printf("\n");
	return 0;
}

void quicksort(int arr[],int lb ,int ub)
{
	if(lb<ub)
	{
		int pIndex = partition(arr,lb, ub);
		quicksort(arr,lb,pIndex-1);
		quicksort(arr,pIndex+1,ub);
	}
}

int partition(int arr[],int lb ,int ub)
{
    int pIndex =lb;
    int pivot=arr[ub];
    int i;
    for(i=lb;i<ub;i++)
	{
	    if(arr[i]<pivot)
		{
		    swap(&arr[i],&arr[pIndex]);
		    pIndex++;	
		}
	}	
	swap(&arr[ub],&arr[pIndex]);
	return pIndex;	
}

void swap(int *x,int*y)
{
    int temp=*x;
	*x=*y;
	*y=temp;
}