Pagini recente » Cod sursa (job #2847882) | Cod sursa (job #2857058) | Cod sursa (job #949882) | Cod sursa (job #2238886) | Cod sursa (job #2238882)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
const int N = 500001;
int n,v[N];
void interschimb(int &x, int &y)
{
int aux;
aux=x;
x=y;
y=aux;
}
void citire()
{
f>>n;
for(int i=1; i<=n; i++)
f>>v[i];
}
void afisare()
{
for(int i=1; i<=n; i++)
g<<v[i]<<' ';
}
void quickSort(int ST,int DR)
{
if(ST>=DR)
return;
int pivot=v[(ST+DR)/2];
int st=ST,dr=DR;
do
{
while(v[st]<pivot)
st++;
while(v[dr]>pivot)
dr--;
if(st<=dr)
{
interschimb(v[st],v[dr]);
st++;
dr--;
}
}
while(st<=dr);
if(ST<dr)
quickSort(ST,dr);
if(st<DR)
quickSort(st,DR);
}
int main()
{
citire();
quickSort(1,n);
afisare();
return 0;
}