Pagini recente » Cod sursa (job #83528) | Cod sursa (job #868966) | Cod sursa (job #1603611) | Cod sursa (job #2814842) | Cod sursa (job #3003764)
#include <iostream>
#include <fstream>
using namespace std;
int w[100000001]= {};
void mergesort(int left, int right, int v[])
{
int i,j,k=0;
int mid=(left+right)/2;
if (left==right)
return;
mergesort(left,mid,v);
mergesort(mid+1,right,v);
for (i=left,j=mid+1; i<=mid && j<=right;)
{
if (v[i]<v[j])
{
w[k]=v[i];
i++;
}
else
{
w[k]=v[j];
j++;
}
k++;
}
for (; i<=mid; i++)
w[k]=v[i],k++;
for (; j<=right; j++)
w[k]=v[j],k++;
for (i=left; i<=right; i++)
v[i]=w[i-left];
}
int main()
{
ifstream f1 ("algsort.in");
ofstream f2 ("algsort.out");
int n,i;
f1>>n;
int v[n];
for (i=0; i<n; i++)
f1>>v[i];
mergesort(0,n-1,v);
for (i=0; i<n; i++)
f2<<v[i]<< " ";
return 0;
}