Pagini recente » Cod sursa (job #1616295) | Cod sursa (job #1745597) | Cod sursa (job #1002555) | Cod sursa (job #1224642) | Cod sursa (job #2984022)
#include <iostream>
#include <fstream>
using namespace std;
int w[500001]= {};
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,cnt=1;
f1>>n;
int v[n];
for (i=0; i<n; i++)
f1>>v[i];
mergesort(0,n-1,v);
//*while (cnt!=0)
//{
// cnt=0;
// for (i=0; i<n-1; i++)
// if (v[i]>v[i+1])
// {
// swap(v[i],v[i+1]);
// cnt++;
//
// }
//}
for (i=0; i<n; i++)
f2<<v[i]<< " ";
return 0;
}