Advertisement
JustSaiyan4u

SORTARE RAPIDA (divide et impera)

Feb 17th, 2020
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.71 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdlib.h>
  3. using namespace std;
  4.  
  5. int a[100];
  6.  
  7. void quick(int a[100],int p,int q)
  8. {
  9.     int aux,min,max,sep;
  10.     sep=a[(p+q)/2];
  11.     min=p;
  12.     max=q;
  13.  
  14.     do{
  15.         while(a[min]<sep)
  16.             min++;
  17.  
  18.         while(a[max]>sep)
  19.             max--;
  20.  
  21.         if(min<=max)
  22.         {
  23.             aux=a[min];
  24.             a[min++]=a[max];
  25.             a[max]=aux;
  26.         }
  27.     }while(min<=max);
  28.  
  29.     if(p<max)
  30.         quick(a,p,max);
  31.  
  32.     if(min<q)
  33.         quick(a,min,q);
  34. }
  35.  
  36. int main()
  37. {
  38.     int n,i;
  39.     cout<<"n= "; cin >>n;
  40.  
  41.     for(i=1;i<=n;i++)
  42.         a[i]=rand()%100+1;
  43.  
  44.  
  45.     i=1;
  46.     quick(a,i,n);
  47.  
  48.     for(i=1;i<=n;i++)
  49.         cout<<a[i]<<" ";
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement