Pagini recente » Atasamentele paginii Profil stefaniavisan | Atasamentele paginii Profil Alinutzu007 | Monitorul de evaluare | Statistici Hanganu Ioana (ioana_h) | Cod sursa (job #1708643)
#include <stdlib.h>
#include <fstream>
#define DIM 500005
using namespace std;
int n,v[DIM];
int divide(int st, int dr) {
swap(v[rand()%(dr-st)+st],v[dr]);
int wall=st-1;
for(int i=st;i<dr;i++) {
if(v[i]<v[dr]) {
wall++;
swap(v[wall],v[i]);
}
}
swap(v[wall+1],v[dr]);
return wall+1;
}
void quick_sort(int st, int dr) {
if(st<dr) {
int pivot=divide(st,dr);
quick_sort(st,pivot-1);
quick_sort(pivot+1,dr);
}
}
int main()
{
ifstream fin("algsort.in");
ofstream fout("algsort.out");
fin>>n;
for(int i=1;i<=n;i++)
fin>>v[i];
quick_sort(1,n);
for(int i=1;i<=n;i++)
fout<<v[i]<<" ";
return 0;
}