Advertisement
Erasyl_BKT_505

Quick sort

Jan 25th, 2024
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #define yes std::cout<<"YES\n";
  4. #define no std::cout<<"NO\n";
  5. typedef long long ll;
  6. typedef unsigned long long ull;
  7.  
  8. int partiton(int arr[], int low, int high){
  9.     int pivot = arr[high];
  10.     int i = low -1, j = high;
  11.     while(true){
  12.         while(arr[++i] < pivot){
  13.             if(i == high)
  14.                 break;
  15.         }
  16.  
  17.         while(arr[--j] > pivot){
  18.             if(j == low)
  19.                 break;
  20.         }
  21.  
  22.         if(i>=j)
  23.             break;
  24.  
  25.         std::swap(arr[i], arr[j]);
  26.     }
  27.     std::swap(arr[high],arr[i]);
  28.     return i;
  29. }
  30.  
  31.  void QuickSort(int arr[], int low, int high){
  32.     if(low < high){
  33.         int pi = partiton(arr,low,high);
  34.         QuickSort(arr, low, pi-1);
  35.         QuickSort(arr, pi+1, high);
  36.     }
  37.  }
  38.  
  39.  
  40.  int main(){
  41.     int n, arr[10010];
  42.     std::cin>>n;
  43.     for(int i=0;i<n;i++){
  44.         std::cin>>arr[i];
  45.     }
  46.     QuickSort(arr,0,n-1);
  47.     for(int i=0;i<n;++i){
  48.         std::cout<<arr[i]<<' ';
  49.     }
  50.  }
Tags: Quick Sort
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement