Pagini recente » Cod sursa (job #2944835) | Cod sursa (job #579547) | Cod sursa (job #3175759) | Cod sursa (job #43450) | Cod sursa (job #2749035)
#include <fstream>
int v[500001];
int temp[500001];
void sort(int* v, int st, int dr) {
if (st == dr)
return;
int mij = st + (dr - st) / 2;
sort(v, st, mij);
sort(v, mij + 1, dr);
int i = st;
int j = mij + 1;
int k = 0;
while (i <= mij && j <= dr) {
if (v[i] < v[j])
temp[k++] = v[i++];
else
temp[k++] = v[j++];
}
while (i <= mij)
temp[k++] = v[i++];
while (j <= dr)
temp[k++] = v[j++];
for (int i = st, j = 0; i <= dr; ++i, ++j)
v[i] = temp[j];
}
int main() {
std::ifstream fin("algsort.in");
std::ofstream fout("algsort.out");
int n;
fin >> n;
for (int i = 0; i < n; ++i)
fin >> v[i];
fin.close();
sort(v, 0, n - 1);
for (int i = 0; i < n; ++i)
fout << v[i] << ' ';
fout << '\n';
fout.close();
return 0;
}