Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.03 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define SWAP(a, b) do { int tmp = a; a = b; b = tmp; } while (0)
  5.  
  6. int partition(int* tab, int left, int right) {
  7.     int x = tab[right];
  8.     int j = left ;
  9.    
  10.    
  11.     for(int i=left;i<right;i++)
  12.     {
  13.         if(tab[i]<x)
  14.         {
  15.            
  16.             SWAP(tab[i],tab[j]);
  17.             j++;
  18.         }
  19.  
  20.     }    
  21.     SWAP(tab[right],tab[j]);
  22.  
  23.    
  24.    
  25.     return j;
  26. }
  27.  
  28. void quickSort(int tab[], int left, int right) {
  29.     if(left<right)
  30.     {
  31.         int piv = partition (tab,left,right);
  32.         quickSort (tab, left, piv-1);
  33.         quickSort (tab,piv+1,right);
  34.     }    
  35. }
  36.  
  37. int main() {
  38.     int Z;
  39.  
  40.     scanf("%d", &Z);
  41.  
  42.     int val;
  43.  
  44.     while ((Z--)>0) {
  45.  
  46.         int n;
  47.         scanf("%d", &n);
  48.         int *tab = malloc(n*sizeof(n));
  49.         for(int i=0; i<n; i++) {
  50.             scanf("%d", &tab[i]);
  51.         }
  52.        
  53.         quickSort(tab, 0, n-1);
  54.         for(int i=0; i<n; i++) {
  55.             printf("%d\n", tab[i]);
  56.         }
  57.         free(tab);
  58.     }
  59.  
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement