Pagini recente » Clasament craciun-viteza-3 | Cod sursa (job #2665027) | Cod sursa (job #950603) | Cod sursa (job #1621567) | Cod sursa (job #1053671)
/*#include<fstream>
#include<cstdlib>
using namespace std;
long long n,i,v[200000000];
long partitie(int s,int r, int pivot)
{
long long pi=v[pivot];
long long ax;
ax=v[r];
v[r]=v[pivot];
v[pivot]=ax;
long long t=s;
for(int i=s;i<r;i++)
{
if(v[i]<=pi)
{
ax=v[i];
v[i]=v[t];
v[t]=ax;
t++;
}
}
ax=v[r];
v[r]=v[t];
v[t]=ax;
return t;
}
void qsort(int s, int r)
{
if(s<r)
{
int w=partitie(s,r,s+rand()%(r-s));//std::abs(v[s]%(r-s)));
qsort(s,w-1);
qsort(w+1,r);
}
}
int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(i=1;i<=n;i++) f>>v[i];
f.close();
qsort(1,n);
for(i=1;i<=n;i++) g<<v[i]<<" ";
g.close();
return 0;
}*/
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[3000001],n,i,k;
void quicksort(int s, int d, int k)
{
int t;
int i = s;
int j = d;
int p = a[(i+j)/2];
while (i<j)
{
while (a[i]<p)
i++;
while (a[j]>p)
j--;
if (i<=j)
{
t = a[i];
a[i] = a[j];
a[j] = t;
i++; j--;
}
}
if (s<j)
quicksort(s,j,k);
if (i<d)
quicksort(i,d,k);
}
int main()
{
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
quicksort(1,n,k);
for(i=1;i<=n;i++)
g<<a[i]<<" ";
return 0;
}