Pagini recente » Cod sursa (job #964740) | Cod sursa (job #1155032) | Cod sursa (job #1806472) | Cod sursa (job #2770841) | Cod sursa (job #1320235)
#include<fstream>
#define NMAX 5000010
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[NMAX], n;
int partitioneaza(int st, int dr)
{
int p=st+1, u=dr;
while (p<=u)
{
if (a[p]<=a[st]) ++p;
if (a[u]>=a[st]) --u;
if (a[p]>a[st] && a[u]<a[st] && p<u)
{
swap(a[p++], a[u--]);
}
}
swap(a[st], a[p-1]);
return p-1;
}
void quick(int st, int dr)
{
if (st<dr)
{
int p=partitioneaza(st, dr);
quick(st, p-1);
quick(p+1, dr);
}
}
int main()
{
f>>n;
for (int i=1; i<=n; ++i)
{
f>>a[i];
}
quick(1, n);
for (int i=1; i<=n; ++i) g<<a[i]<<" ";
f.close();
g.close();
return 0;
}