Advertisement
Guest User

Untitled

a guest
May 23rd, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <math.h>
  4. #include <stdlib.h>
  5.  
  6. void quicksort(int n, int vet[n], int f, int l){
  7.  
  8. int pivot = vet[f];
  9. int esq = 0, dir = 0,i;
  10.  
  11. for(i=0; i<n ;i++)
  12. {
  13. if(pivot < vet[i])
  14. {
  15. dir++;
  16. }
  17. else if(pivot > vet[i])
  18. esq++;
  19. }
  20. if(esq == 0 && dir == 0)
  21. {
  22. printf("%d ", pivot);
  23. return;
  24. }
  25.  
  26. int vetesq[esq], vetdir[dir];
  27. int e=-1, d=-1;
  28.  
  29. for(i=1; i<n ; i++)
  30. {
  31. if(pivot > vet[i])
  32. {
  33. e++;
  34. vetesq[e] = vet[i];
  35. }
  36. else if(pivot < vet[i])
  37. {
  38. d++;
  39. vetdir[d] = vet[i];
  40. }
  41. }
  42.  
  43. printf("%d ", pivot);
  44. if(e >= 0)
  45. quicksort(esq,vetesq,f,e);
  46. if(d >= 0)
  47. quicksort(dir,vetdir,f,d);
  48.  
  49.  
  50. return;
  51. }
  52.  
  53. int main(){
  54.  
  55. int n;
  56.  
  57. scanf("%d", &n);
  58.  
  59. int vet[n],i;
  60.  
  61. for(i=0; i<n; i++)
  62. {
  63. scanf("%d", &vet[i]);
  64. }
  65.  
  66. quicksort(n,vet,0,n-1);
  67.  
  68.  
  69.  
  70. return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement