Guest User

Untitled

a guest
Jan 21st, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.04 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. #define DIM 100
  6.  
  7. void quick(int sin, int des, int vet[])
  8. {
  9. int i, j, media;
  10.      media=vet[(sin+des)/2];   //pivot
  11.      i=sin;
  12.      j=des;
  13.      
  14.      do
  15.      {
  16.            while(vet[i]<media){
  17.                  i=i+1;
  18.            }
  19.            while(vet[j]>media){
  20.                   j=j-1;
  21.            }
  22.            if(i<=j)
  23.            {
  24.                  int temp=vet[i];
  25.                  vet[i]=vet[j];
  26.                  vet[j]=temp;
  27.                  i=i+1;
  28.                  j=j-1;
  29.            }
  30.      }while(j>=i);
  31.      
  32.      if(sin<j)  
  33.         quick(sin, j, vet);
  34.      if(i<des)
  35.         quick(i, des, vet);
  36. }
  37.  
  38. void stampa(int vet[], int nElem)
  39. {
  40. int i;
  41.     for(i=0;i<nElem;i++)
  42.         printf("%4d", vet[i]);
  43. }
  44.  
  45. int* genVect(){
  46. int* vet;
  47.  
  48.     srand(time(NULL));
  49.    
  50.     vet=new int [DIM];
  51.    
  52.     for(int i=0;i<DIM;i++){
  53.         vet[i]=rand()%100;
  54.     }
  55.     return vet;
  56. }
  57.  
  58. int main()
  59. {
  60. int* vet;
  61.     vet=genVect();
  62.     quick(0, DIM-1, vet);
  63.     stampa(vet, DIM);
  64.     getchar();
  65.     return 0;
  66. }
Add Comment
Please, Sign In to add comment