Advertisement
kiwser

quickSort

Jun 27th, 2021
830
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.89 KB | None | 0 0
  1. #include<stdio.h>
  2.  
  3. void swap_(int *a, int *b){
  4.     int temp = *a;
  5.     *a = *b;
  6.     *b = temp;
  7. }
  8.  
  9. int partiTion(int arr[], int left, int right){
  10.     int pivot = arr[right];
  11.     int i = left-1;
  12.  
  13.     for(int j = left; j < right; j++){
  14.         if(arr[j] < pivot){
  15.             i++;
  16.             swap_(&arr[i], &arr[j]);
  17.         }
  18.     }
  19.  
  20.     swap_(&arr[i+1], &arr[right]);
  21.  
  22.     return (i+1);
  23. }
  24.  
  25.  
  26. void quickSort(int arr[], int left, int right){
  27.     if(left < right){
  28.         int pIndex = partiTion(arr, left, right);
  29.         quickSort(arr, left, pIndex-1);
  30.         quickSort(arr, pIndex+1, right);
  31.     }
  32. }
  33.  
  34. void Print(int arr[], int n){
  35.     for(int i = 0; i < n; i++){
  36.         printf("%d ", arr[i]);
  37.     }
  38.     printf("\n");
  39. }
  40.  
  41. int main(){
  42.     int arr[10] = {5,6,2,8,7,1,9,3};
  43.     int n = 8;
  44.  
  45.     quickSort(arr, 0, n-1);
  46.  
  47.     //Print(arr, n);
  48.  
  49.     return 0;
  50.  
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement