fork download
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <cstring>
  5. #define FIN "algsort.in"
  6. #define FOUT "algsort.out"
  7.  
  8. using namespace std;
  9.  
  10. vector<int> vec;
  11.  
  12. void _swap(int i, int j) {
  13.  
  14. int aux = vec[ i ];
  15. vec[ i ] = vec[ j ];
  16. vec[ j ] = aux;
  17. }
  18.  
  19. void quicksort(int lo, int hi) {
  20.  
  21. int pivot = vec[ (lo + hi) >> 1],
  22. i = lo,
  23. j = hi;
  24.  
  25. while(i <= j) {
  26. while(vec[i] < pivot) i++;
  27. while(vec[j] > pivot) j--;
  28. if(i<=j) {_swap(i, j); i++; j--;}
  29. }
  30.  
  31. if(lo < j) quicksort(lo, j);
  32. if(i < hi) quicksort(i, hi);
  33.  
  34. }
  35.  
  36. int main(int argc, char const *argv[]) {
  37.  
  38. int N,
  39. num;
  40.  
  41. cin>>N;
  42. for(int i = 0; i < N; i++) {
  43.  
  44. cin>>num;
  45. vec.push_back(num);
  46. }
  47.  
  48. quicksort(0, N - 1);
  49.  
  50. for(vector<int>::iterator it = vec.begin(); it != vec.end(); it++) {
  51.  
  52. cout<<(*it)<<" ";
  53. }
  54.  
  55. return(0);
  56. }
  57.  
Success #stdin #stdout 0s 5644KB
stdin
10
9 8 7 6 5 4 3 2 1 0
stdout
0 1 2 3 4 5 6 7 8 9