fork download
  1. //Code for Quicksort using recursion
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4.  
  5. int partition(int *arr,int s,int e){
  6. int pivot = arr[s];
  7. int pivotIndex,cnt=0;
  8. for(int i=s+1;i<=e;i++){
  9. if(arr[i]<=pivot){
  10. cnt++;
  11. }
  12. }
  13. pivotIndex = s + cnt;
  14. swap(arr[s],arr[pivotIndex]);
  15.  
  16. int i=s,j=e;
  17. while(pivotIndex>i && pivotIndex < j){
  18. while(arr[i]<=pivot){
  19. i++;
  20. }
  21. while(arr[j]>pivot){
  22. j--;
  23. }
  24. if(pivotIndex>i && pivotIndex < j){
  25. swap(arr[i++],arr[j--]);
  26. }
  27. }
  28.  
  29. return pivotIndex;
  30.  
  31. }
  32.  
  33. void quicksort(int *arr,int s, int e){
  34. if(s>=e){
  35. return;
  36. }
  37.  
  38. int p = partition(arr,s,e);
  39.  
  40. quicksort(arr,s,p-1);
  41. quicksort(arr,p+1,e);
  42. }
  43.  
  44. int main(){
  45. int arr[]={ 50,70,60,12,23,55,33};
  46. int n=7;
  47.  
  48. quicksort(arr,0,n-1);
  49.  
  50. for(int i=0;i<n;i++){
  51. cout<<arr[i]<<" ";
  52. }
  53. }
  54.  
Success #stdin #stdout 0s 5276KB
stdin
Standard input is empty
stdout
12 23 33 50 55 60 70