Pagini recente » Cod sursa (job #1613184) | Cod sursa (job #2341593) | Cod sursa (job #1023597) | Cod sursa (job #1096150) | Cod sursa (job #1019255)
#include <fstream>
#include <cstdlib>
using namespace std;
int v[500005];
int choosePivot(int st, int dr)
{
int i,j,piv;
i=st-1;
j=dr+1;
piv=v[(st+dr)/2];
while(true){
do
{
++i;
}while(v[i]<piv);
do
{
--j;
}while(v[j]>piv);
if(i<j)
{
int aux=v[i];
v[i]=v[j];
v[j]=aux;
}
else
return j;
}
return 0;
}
void quicksort(int st,int dr)
{
if(st<dr)
{
int pivot=choosePivot(st,dr);
quicksort(st,pivot);
quicksort(pivot+1,dr);
}
}
int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
int n;
f>>n;
for(int i=1;i<=n;i++)
f>>v[i];
quicksort(1,n);
for(int i=1;i<=n;i++)
g<<v[i]<<" ";
f.close();
g.close();
return 0;
}