Pagini recente » Cod sursa (job #1376065) | Cod sursa (job #918694) | Cod sursa (job #1495172) | Cod sursa (job #957706) | Cod sursa (job #1806725)
#include <iostream>
#include <cstdlib>
using namespace std;
const int N=100000;
int v[N];
void schimb(int &a,int &b)
{
int c=a;
a=b;
b=c;
}
int partitie(int v[],int st,int dr)
{
int i,j,piv=v[dr];
for(i=j=st; i<dr; i++)
if(v[i]<piv)
{
schimb(v[i],v[j]);
j++;
}
schimb(v[j],v[dr]);
return j;
}
void qs(int v[],int st,int dr)
{
if(st>=dr) return;
int p=partitie(v,st,dr);
if(k<p)
qs(v,st,p-1);
if(k>p)
qs(v,p+1,dr);
}
int main()
{
int n,i,v[N],j,st,p;
cin>>n;
for(i=1; i<=n; i++)
cin>>v[i];
for(i=n; i>=1; i--)
{
j=1+rand()%i;
schimb(v[i],v[j]);
}
qs(v, 1, n);
for(i=1;i<=n;i++)
cout<<v[i]<" ";
return 0;
}