Pagini recente » Autentificare | Cod sursa (job #2814743) | Cod sursa (job #361131) | Cod sursa (job #1767028) | Cod sursa (job #1717818)
/********************
Created by Sburly
********************/
#include <fstream>
#include <vector>
using namespace std;
void ms(int l, int r, vector<unsigned long int>& in, vector<unsigned long int>& out)
{
long int m = (l + r) >> 1, i, j, k;
if (l == r) return;
ms(l, m, in,out);
ms(m + 1, r,in,out);
for (i=l, j=m+1, k=l; i<=m || j<=r; )
if (j > r || (i <= m && in[i] < in[j]))
out[k++] = in[i++];
else
out[k++] = in[j++];
for (k = l; k <= r; k++) in[k] = out[k];
}
inline void merge_sort(int l, int r, vector<unsigned long int>& in)
{
vector<unsigned long int> out(r-l+1);
ms(l, r, in, out);
}
long int n;
vector<unsigned long int> v(500000);
int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
f >> n;
for(long int i = 0; i < n; i++)
{
f >> v[i];
}
merge_sort(0,n-1,v);
for(long int i = 0; i < n; i++)
{
g << v[i] << ' ';
}
return 0;
}