Pagini recente » Cod sursa (job #2196194) | Cod sursa (job #3161438) | Cod sursa (job #2478284) | Cod sursa (job #2546109) | Cod sursa (job #3005336)
// ordonare crescatoare
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
#define NMAX 400000
int a[NMAX];
int divide(int st,int dr){
int pivot=a[st];
while(st<=dr){
// liber la stanga, caut in dreapta un element
while(st<dr&&a[dr]>=pivot)
dr--;
a[st]=a[dr];
// liber la dreapta, caut in stanga un element
while(st<dr&&a[st]<=pivot)
st++;
a[dr]=a[st];
}
a[st]=pivot;
return st;
}
void qsort(int st,int dr){
int poz;
while(st<dr){
poz=divide(st,dr);
qsort(st,poz-1);
qsort(poz+1,dr);
}
}
int main(){
int n;
f>>n;
for(int i=1;i<=n;++i)
f>>a[i];
qsort(1,n);
for(int i=1;i<=n;++i)
g<<a[i]<<" ";
return 0;
}