Advertisement
Eternoseeker

Quick sort DSA

Dec 20th, 2022
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | Source Code | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class quick{
  5.     int arr[9] = {1,2,5,10,61,77,45,95,89};
  6. public:
  7.  
  8.     void quicksort(int p, int q){
  9.         int pivot;
  10.         if(p < q){
  11.             pivot = partition(p, q);
  12.             quicksort(p, pivot-1);
  13.             quicksort(pivot+1, q);
  14.         }
  15.     }
  16.  
  17.     void swap(int i, int j){
  18.         cout << arr[i] << " " << arr[j] << endl;
  19.         int temp = arr[i];
  20.         arr[i] = arr[j];
  21.         arr[j] = temp;
  22.         cout << arr[i] << " " << arr[j] << endl;
  23.     }
  24.  
  25.     int partition(int start, int last){
  26.         int low = start;
  27.         int high = last;
  28.         float pivot = arr[low];
  29.         do{
  30.             do{
  31.                 low ++;
  32.             }while(arr[low] <= pivot);
  33.             do{
  34.             high --;
  35.             }while(arr[high] > pivot);
  36.             if(low < high){
  37.             swap(low, high);
  38.             }
  39.         }while(low < high);
  40.         swap(start, high);
  41.         return high;
  42.     }
  43.  
  44.     void display(int n){
  45.         cout << "Sorted:";
  46.         for(int i = 0; i < n; i++){
  47.             cout << " " << arr[i];
  48.         }
  49.     }
  50.  
  51. };
  52.  
  53. int main(){
  54.     quick q;
  55.     q.quicksort(0, 9);
  56.     q.display(9);
  57. //  q.quicksort(0,8);
  58. //  q.swap(2,4);
  59.     return 0;
  60. }
  61.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement