Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. void shift(int *a, int i, int j){
  6.     int temp = a[i];
  7.     a[i] = a[j];
  8.     a[j] = temp;
  9. }
  10.  
  11. int partition(int* a, int left, int right){
  12.     int pivot = a[left];
  13.     int i = left;
  14.     int j = right;
  15.     while(i < j){
  16.         while(a[i] <= pivot){
  17.             i++;
  18.         }
  19.         while(a[j] > pivot && j >= i){
  20.             j--;
  21.         }
  22.         if(i < j){
  23.             shift(a, i, j);
  24.         }
  25.     }
  26.     shift(a, left, j);
  27.     return j;
  28. }
  29.  
  30. void quick_sort (int*a, int left, int right){
  31.     if(left < right){
  32.         int p = partition(a, left, right);
  33.         quick_sort(a, left, p-1);
  34.         quick_sort(a, p+1, right);
  35.     }
  36.     return;
  37. }
  38.  
  39. int main(){
  40.     int n;
  41.     cin >> n;
  42.     int a[n];
  43.     for(int j = 0; j < n; j++){
  44.         cin >> a[j];
  45.     }
  46.     quick_sort(a, 0, n-1);
  47.     for(int i = 0; i < n; i++){
  48.         cout << a[i] << endl;
  49.     }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement