Cod sursa(job #1226471)
| Utilizator | Data | 5 septembrie 2014 16:55:42 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.82 kb |
#include<fstream>
using namespace std;
ifstream f("algsort.in",ios::in);
ofstream g("algsort.out",ios::out);
int a[500001];
void quick( int inf, int sup)
{
int p,i,j,x,t;
i=inf;
j=sup;
x=a[(i+j)/2];
do
{
while( (i<=sup) && (a[i]<x)) i++;
while( (j>=inf) && (a[j]>x)) j--;
if(i<=j)
{
t=a[i];
a[i]=a[j];
a[j]=t;
i++;
j--;}}
while(i<=j);
if(inf<j) quick(inf,j);
if(sup>i) quick(i,sup);}
int main()
{
int k,n;
f>>n;
for(k=1;k<=n;k++)
f>>a[k];
quick(1,n);
for(k=1;k<=n;k++)
g<<a[k]<<' ';
return 0;}
