Pagini recente » Cod sursa (job #3175110) | Runda 1 preONI 2007 | Cod sursa (job #1468479) | Cod sursa (job #2117634) | Cod sursa (job #1804160)
#include <fstream>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
const int N = 500010;
int n, v[N], i, k[N];
void interclasare(int p, int m, int u){
int i = p, j = m + 1, nr = p - 1;
while (i <= m && j <= u) {
if (v[i] < v[j]) {
k[++nr] = v[i], i++;
} else {
k[++nr] = v[j], j++;
}
}
while (i <= m) {
k[++nr] = v[i], i++;
}
while (j <= u) {
k[++nr] = v[j], j++;
}
for (i = p; i <= u; ++i) {
v[i] = k[i];
}
}
void sortare(int p, int u){
if (p < u) {
int m = (p + u) >> 1;
sortare(p, m);
sortare(m + 1, u);
interclasare(p, m, u);
}
}
int main(){
fin >> n;
for (i = 1; i <= n; ++i) {
fin >> v[i];
}
sortare(1, n);
for (i = 1; i <= n; ++i) {
fout << v[i] << ' ';
}
return 0;
}