Cod sursa(job #1565510)
| Utilizator | Data | 10 ianuarie 2016 21:57:33 | |
|---|---|---|---|
| Problema | Sortare prin comparare | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.82 kb |
#include <iostream>
#include <fstream>
using namespace std;
void qs(int x,int y,int a[])
{
if(x<y)
{
int m,i,j,aux;
m=a[(x+y)/2];
i=x-1;
j=y+1;
while(i<j)
{
do
{
j--;
}
while(a[j]>m);
do
{
i++;
}
while(a[i]<m);
if(i<j)
{
aux=a[i];
a[i]=a[j];
a[j]=aux;
}
}
qs(x,j,a);
qs(j+1,y,a);
}
}
int main()
{
int a[500001],n,i;
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(i=1;i<=n;i++)
{
f>>a[i];
}
qs(1,n,a);
for(i=1;i<=n;i++)
g<<a[i]<<" ";
return 0;
}
