Pagini recente » Cod sursa (job #1593591) | Istoria paginii utilizator/ewaru | Cod sursa (job #1293087) | Cod sursa (job #897466) | Cod sursa (job #1170096)
#include <fstream>
#include <cstdlib>
using namespace std;
const int N = 1 + 5e5;
int v[N];
void qsort(int st, int dr){
if (dr <= st)
return;
swap( v[dr], v[st + rand() % (dr - st + 1)] );
int poz = st;
for (int i = st ; i < dr ; i++)
if ( v[i] < v[dr] || (v[i] == v[dr] && (rand() & 1) ) ){
swap(v[i], v[poz]);
poz++;
}
swap(v[poz], v[dr]);
qsort(st, poz - 1);
qsort(poz + 1, dr);
}
int main(){
ifstream in("algsort.in");
for (int i = 0 ; i <= v[0] ; i++)
in >> v[i];
in.close();
qsort(1, v[0]);
ofstream out("algsort.out");
for (int i = 1 ; i <= v[0] ; i++)
out << v[i] << ' ';
out << '\n';
out.close();
return 0;
}