Pagini recente » Cod sursa (job #2446271) | Cod sursa (job #1072826) | Cod sursa (job #227615) | Cod sursa (job #2208625) | Cod sursa (job #2237983)
#include <iostream>
#include <fstream>
using namespace std;
int v[500001];
int aux[500001];
ifstream fin("algsort.in");
ofstream fout("algsort.out");
void interclasare(int n, int m, int i1, int i2 ){
int i = i1, j = i2, k = i1;
while(i <= n && j <= m){
if(v[i] <= v[j]) aux[k++] = v[i++];
else aux[k++] = v[j++];
}
while(i <= n) aux[k++] = v[i++];
while(j <= m) aux[k++] = v[j++];
for(int i = i1; i <= m; ++i) v[i] = aux[i];
}
void quicksortt(int st, int dr){
int mij = (st + dr) / 2;
if(dr - st <= 0) return ;
quicksortt(st, mij);
quicksortt(mij + 1, dr);
interclasare(mij, dr, st, mij + 1);
}
int main() {
int n;
fin >> n;
for(int i = 1; i <= n; ++i){
fin >> v[i];
}
quicksortt(1, n);
for(int i = 1; i <= n; ++i) fout << v[i] << " " ;
return 0;
}