Pagini recente » Cod sursa (job #3228410) | Cod sursa (job #3144291) | Cod sursa (job #3271278) | Cod sursa (job #422082) | Cod sursa (job #2663994)
#include <iostream>
#include <fstream>
#include <vector>
#include <random>
#define NMAX 500001
std::ifstream f("algsort.in");
std::ofstream g("algsort.out");
int n, v[NMAX], w[NMAX];
void quicksort(int v[],int st,int dr)
{
if (st < dr)
{
int mid = st + (dr - st) / 2;
quicksort(v,st, mid);
quicksort(v,mid + 1, dr);
int i = st, j = mid + 1, k = st;
while (i <= mid && j <= dr)
if (v[i] <= v[j])
w[k++] = v[i++];
else
w[k++] = v[j++];
while (i <= mid)
w[k++] = v[i++];
while (j <= dr)
w[k++] = v[j++];
for (int i = st; i <= dr; ++i)
v[i] = w[i];
}
}
int main() {
f >> n;
for (int i = 0; i < n; ++i)
f >> v[i];
quicksort(v, 0, n - 1);
for (int i = 0; i < n; ++i)
g << v[i] << ' ';
f.close();
g.close();
}