Pagini recente » Cod sursa (job #1143321) | Cod sursa (job #1893957) | Cod sursa (job #1694041) | Cod sursa (job #2424848) | Cod sursa (job #1732192)
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[500000], n, t[500000];
void mergeS(int st, int dr)
{
int i = st, k = st, m=(st+dr)/2, j= m+1;
for(int f = st; f <= dr; f++)
t[f] = v[f];
while(i <= m && j <= dr)
{
if(t[i] > t[j])
{
v[k] = t[j];
j++;
}
else
{
v[k] = t[i];
i++;
}
k++;
}
while(i <= m )
v[k++] = t[i++];
while(j <= dr )
v[k++] = t[j++];
}
void mergeSort(int st, int dr)
{
if(st < dr)
{
int m =(st+dr)/2;
mergeSort(st, m);
mergeSort(m+1, dr);
mergeS(st,dr);
}
}
int main()
{
in >> n;
for(int i=0;i<n;i++)
in >> v[i];
mergeSort(0,n-1);
for(int i=0;i<n;i++)
out << v[i] << " ";
return 0;
}