Pagini recente » Cod sursa (job #990391) | Cod sursa (job #2700782) | Cod sursa (job #1417634) | Cod sursa (job #807042) | Cod sursa (job #2942999)
#include <iostream>
#include <fstream>
using namespace std;
#define MaxN 500000
int v[MaxN];
void qsort(int st, int dr) {
int p=v[st+rand()%(dr-st+1)];
int b=st, e=dr;
while(v[b]<p)
b++;
while(v[e]>p)
e--;
while(b<e) {
swap(v[b], v[e]); b++; e--;
while(v[b]<p) b++;
while(v[e]>p) e--;
}
if(e>st)
{
qsort(st, e);
}
if(e+1<dr)
{
qsort(e+1, dr);
}
}
int main() {
ifstream in("algsort.in");
ofstream out("algsort.out");
int n, i;
in>>n;
for(i=0; i<n; i++) {
in>>v[i];
}
qsort(0, n-1);
for(i=0; i<n; i++)
{
out<<v[i]<<" ";
}
return 0;
}