Pagini recente » Borderou de evaluare (job #157076) | Cod sursa (job #2713911) | Cod sursa (job #621686) | Cod sursa (job #601021) | Cod sursa (job #1018095)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in ("algsort.in");
ofstream out ("algsort.out");
int N, v[500005];
void interschimb (int &x, int &y)
{
int aux=x;
x=y;
y=aux;
}
void quicksort(int a, int b)
{
int i, j, poz_piv;
if (a<b)
{
poz_piv=(a+b)/2;
i=a;
j=b;
while (i<j)
{
while (v[i]<=v[poz_piv] && i<b)
i++;
while (v[j]>v[poz_piv])
j--;
if (i<j)
interschimb(v[i], v[j]);
}
interschimb(v[poz_piv], v[j]);
quicksort(a, j-1);
quicksort(j+1, b);
}
}
int main()
{
in>>N;
for (int i=0;i<N;i++)
in>>v[i];
quicksort(0, N-1);
for (int i=0;i<N;i++)
out<<v[i]<<" ";
return 0;
}