Cod sursa(job #1156905)
| Utilizator | Data | 28 martie 2014 09:24:32 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int N,a[555000],i;
void quicksort(int inc, int sf)
{
int i=inc; int j=sf;
int p=a[(inc+sf)/2];
while(i<=j)
{
while (a[i]<p) ++i;
while (a[j]>p) --j;
if(i<=j)
{
swap(a[i],a[j]);
i++;
j--;
}
if(inc<j)
quicksort(inc,j);
if(i<sf)
quicksort(i,sf);
}
}
int main()
{
fin>>N;
for(i=1;i<=N;i++)
fin>>a[i];
quicksort(1,N);
for(i=1;i<=N;i++)
fout<<a[i]<<" ";
fin.close();
fout.close();
return 0;
}
