Pagini recente » Cod sursa (job #180016) | Cod sursa (job #2737789) | Cod sursa (job #2871500) | Cod sursa (job #2093474) | Cod sursa (job #909775)
Cod sursa(job #909775)
#include <fstream>
#define DIM 500010
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[DIM], w[DIM], n, i;
void interclaseaza(int p, int m, int u) {
int i = p;
int j = m+1;
int k = p-1;
while (i<=m && j<=u)
if (v[i] < v[j])
w[++k] = v[i++];
else
w[++k] = v[j++];
for (;i<=m;i++){
w[++k] = v[i];
}
for (;j<=u;j++){
w[++k] = v[j];
}
for (i=p;i<=u;i++)
v[i] = w[i];
}
void sorteaza(int p, int u) {
if (p<u) {
int m = (p+u)/2;
sorteaza(p,m);
sorteaza(m+1,u);
interclaseaza(p,m,u);
}
}
int main() {
fin>>n;
for (i=1;i<=n;i++) {
fin>>v[i];
}
sorteaza(1,n);
for (i=1;i<=n;i++) {
fout<<v[i]<<" ";
}
return 0;
}