Pagini recente » Cod sursa (job #326630) | Cod sursa (job #3145002) | Cod sursa (job #1009700) | Cod sursa (job #1880765) | Cod sursa (job #3326415)
//
//#pragma GCC optimize("O3")
//#pragma GCC optimize("Ofast")
//#pragma GCC optimize("fast-math")
//#pragma GCC optimize("unroll-loops")
//#pragma GCC optimize("inline")
//#define _USE_MATH_DEFINES
//#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <fstream>
//#include <cstdlib>
//#include <vector>
//#include <cstring>
//#include <cmath>
//#include <bitset>
//#include <queue>
//#include <stack>
//#include <utility>
//#include <algorithm>
//#include <string>
//#include <map>
//#include <unordered_map>
//#include <set>
//#include <unordered_set>
//#include <cstdint>
//#include <climits>
//#include <iomanip>
//#include <cstdio>
//#include <tuple>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int NRMAX = 500000;
int v[NRMAX];
void quicksort(int st, int dr)
{
int piv = v[st + rand() % (dr - st + 1)];
int i, j;
for (i = st; v[i] < piv; ++i);
for (j = dr; v[j] > piv; --j);
while (i < j)
{
swap(v[i], v[j]);
++i; for ( ; v[i] < piv; ++i);
--j; for ( ; v[j] > piv; --j);
}
if (st < j)
quicksort(st, j);
if (j + 1 < dr)
quicksort(j + 1, dr);
}
int main()
{
int n, i;
fin >> n;
for (i = 0; i < n; ++i)
{
fin >> v[i];
}
quicksort(0, n - 1);
for (i = 0; i < n; ++i)
{
fout << v[i] << " ";
}
return 0;
}