Pagini recente » Cod sursa (job #1687100) | Cod sursa (job #1877198) | Cod sursa (job #1636848) | Cod sursa (job #1168382) | Cod sursa (job #2531632)
#include <bits/stdc++.h>
using namespace std;
int p = 31999,n;
char buffer[32010];
int a[500000];
ofstream g("algsort.out");
void inc()
{
p++;
if(p == 32000)
{
fread(buffer,1,32000,stdin);
p = 0;
}
}
void read(int &n)
{
n = 0;
while(buffer[p] < '0' || buffer[p] > '9')
inc();
while(buffer[p] >= '0' && buffer[p] <= '9')
{
n = n * 10 + buffer[p] - '0';
inc();
}
}
void Read()
{
freopen("algsort.in","r",stdin);
read(n);
for(int i = 0;i < n;++i)
read(a[i]);
}
int partition(int a[],int low,int high)
{
int pivot = a[high];
int i = low - 1;
for(int j = low;j < high;++j)
if(a[j] < pivot)
{
++i;
swap(a[i],a[j]);
}
swap(a[i + 1],a[high]);
return (i + 1);
}
void QuickSort(int a[],int low,int high)
{
if(low < high)
{
int pi = partition(a,low,high);
QuickSort(a,low,pi - 1);
QuickSort(a,pi + 1,high);
}
}
void Print()
{
for(int i = 0;i < n;++i)
g<<a[i]<<" ";
g.close();
}
int main()
{
Read();
QuickSort(a,0,n - 1);
Print();
return 0;
}