Pagini recente » Cod sursa (job #1287142) | Cod sursa (job #2916429) | Cod sursa (job #344797) | Cod sursa (job #1860292) | Cod sursa (job #2901361)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int v[500011],n;
void mergeSort(int v[],int left, int right){
if(left == right)
return;
int middle = (left+right)/2;
mergeSort(v,left,middle);
mergeSort(v,middle+1,right);
int x[right-left+2],i=left,j=middle+1,k=0;
while(i<=middle && j<=right)
if(v[i]<v[j])
x[++k]=v[i++];
else
x[++k]=v[j++];
while(i<=middle)
x[++k]=v[i++];
while(j<=right)
x[++k]=v[j++];
for(i=left,j=1; i<=right ; i++,j++)
v[i]=x[j];
}
int main(){
f>>n;
for(int i=1;i<=n;i++)
f>>v[i];
mergeSort(v,1,n);
for(int i=1;i<=n;i++)
g<<v[i]<<" "; }