Pagini recente » Cod sursa (job #140445) | Cod sursa (job #1664328) | Cod sursa (job #1553646) | Cod sursa (job #1625361) | Cod sursa (job #377683)
Cod sursa(job #377683)
#include <fstream>
using namespace std;
const char InFile[]="algsort.in";
const char OutFile[]="algsort.out";
const long int MaxN=500010;
long int N, v[MaxN];
long int partition(long int i, long int j){
bool mod=true;
while(i<j){
if(v[i]>v[j]){
long int aux=v[i];
v[i]=v[j];
v[j]=aux;
mod=!mod;
}
if(mod){
--j;
}else{
++i;
}
}
return i;
}
void qsort(long int start,long int end){
if(start<end){
long int pivot=partition(start,end);
qsort(start,pivot-1);
qsort(pivot+1,end);
}
}
int main(){
ifstream fin(InFile);
fin>>N;
for(register int i=1;i<=N;++i){
fin>>v[i];
}
fin.close();
qsort(1,N);
ofstream fout(OutFile);
for(register int i=1;i<=N;++i){
fout<<v[i]<<" ";
}
fout.close();
return 0;
}