Pagini recente » Cod sursa (job #643402) | Cod sursa (job #2706960) | Borderou de evaluare (job #2051248) | Cod sursa (job #2624998) | Cod sursa (job #2266784)
#include <fstream>
using namespace std;
int v[500004];
int result [500004];
void mergesort (int left, int right){
if(right==left)
return ;
int middle=left+right>>1;
mergesort(left, middle);
mergesort(middle,right);
int left1=left;
int right1=middle;
for(int i=left;i<=right;i++){
if((right1>right) or (left1<=middle and v[left1]<=v[right1])){
result[i]=v[left1];
left1++;
}
else{
result[i]=v[right1];
right1++;
}
}
for(int i=left;i<=right;i++)
v[i]=result[i];
}
int main()
{
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
int n;
fin>>n;
for(int i=1;i<=n;i++)
fin>>v[i];
mergesort(1,n);
for(int i=1;i<=n;i++)
fout<<v[i]<<" ";
return 0;
}