fork download
  1. #include <iostream>
  2. using namespace std;
  3. void swap(int* a,int* b)
  4. {
  5. int temp=*a;
  6. *a=*b;
  7. *b=temp;
  8. }
  9. int partition(int arr[],int low,int high)
  10. {
  11. int p=arr[low];
  12. int i=low;
  13. int j=high;
  14. while(i<j)
  15. {
  16. while(arr[i]<=p && i<=high-1)
  17. i++;
  18. while(arr[j]>p && j>=low+1)
  19. j--;
  20. if(i<j)
  21. {
  22. swap(&arr[i],&arr[j]);
  23. }
  24. }
  25. swap(&arr[low],&arr[j]);
  26. return j;
  27.  
  28. }
  29.  
  30. void quicksort(int arr[],int low,int high)
  31. {
  32.  
  33. if(low<high)
  34. {
  35. int pi=partition(arr,low,high);
  36. quicksort(arr,0,pi-1);
  37. quicksort(arr,pi+1,high);
  38. }
  39. }
  40.  
  41. int main() {
  42. int arr[]={-4,4,5,2,1};
  43. int n=sizeof(arr)/sizeof(arr[0]);
  44. quicksort(arr,0,n-1);
  45. for(int i=0;i<n;i++)
  46. printf("%d ",arr[i]);
  47. return 0;
  48. }
  49.  
Success #stdin #stdout 0.01s 5292KB
stdin
Standard input is empty
stdout
-4 1 2 4 5