Pagini recente » Cod sursa (job #574730) | Cod sursa (job #146421) | Cod sursa (job #2192368) | Cod sursa (job #2449020) | Cod sursa (job #2233181)
#include <fstream>
#include<iostream>
using namespace std;
int V[500001],R[500001];
void Div(int x, int y){
int m,i,j,k;
if(y-x==0)
return;
m=(x+y)/2;
Div(x,m);
Div(m+1,y);
i=x;j=m+1;
k=x;
while(k<=y){
if(i<=m && j<=y){
if(V[i]<V[j]){
R[k]=V[i];k++;i++;
}
else{
R[k]=V[j];k++;j++;
}
}
else if(i>m){
R[k]=V[j];k++;j++;
}
else {
R[k]=V[i];k++;i++;
}
}
for(i=x;i<=y;i++){
V[i]=R[i];
}
return;
}
int main()
{
int N,i;
ifstream f("algsort.in");
f>>N;
for(i=1;i<=N;++i){
f>>V[i];
}
f.close();
Div(1,N);
ofstream g("algsort.out");
for(i=1;i<=N;i++){
g<<V[i];
if(i<N)
g<<" ";
}
g.close();
return 0;
}