AlexandruDu

Problema quicksort

Oct 20th, 2020
717
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. void poz (int li,int ls,int&k,int a[])
  5. {
  6.     int i=li,j=ls,aux,i1=0,j1=-1;
  7.     while(i<j)
  8.     {
  9.         if(a[i]>a[j])
  10.         {
  11.             swap(a[i],a[j]);
  12.             aux=i1;
  13.             i1=-j1;
  14.             j1=-aux;
  15.         }
  16.         i=i+i1;
  17.         j=j+j1;
  18.     }
  19.     k=i;
  20. }
  21. int k;
  22. void quicksort(int li,int ls,int a[])
  23. {
  24.     if(li<ls)
  25.     {
  26.         poz(li,ls,k,a);
  27.         quicksort(li,k-1,a);
  28.         quicksort(k+1,ls,a);
  29.     }
  30. }
  31. int main()
  32. {   int n;
  33.         cin>>n;
  34.         int a[n];
  35.         for(int i=0;i<n;i++)
  36.        {
  37.          cin>>a[i];
  38.        }
  39.       quicksort(a,0,n-1);
  40.       for(int i=0;i<n;i++)
  41.       {
  42.          cout<<a[i]<<" ";
  43.       }
  44.  
  45.     return 0;
  46. }
  47.  
RAW Paste Data