Pagini recente » Cod sursa (job #385270) | Cod sursa (job #79225) | Cod sursa (job #100312) | Cod sursa (job #2604600) | Cod sursa (job #1019955)
#include <fstream>
using namespace std;
int v[1000], c[1000];
void interclasare (int left, int right, int m)
{
int l=left, n=m+1, k=0, i;
while (left<=m && n<=right)
{
if (v[left]<v[n])
{
c[k]=v[left];
left++;
}
else
{
c[k]=v[n];
n++;
}
k++;
}
while (left<=m)
{
c[k]=v[left];
left++;
k++;
}
while (n<=right)
{
c[k]=v[n];
n++;
k++;
}
left=l;
for (i=left; i<=right; i++)
v[i]=c[i-left];
}
void merge_sort (int left, int right)
{
int m;
if (left<right)
{
m=(left+right)/2;
merge_sort (left, m);
merge_sort (m+1, right);
interclasare (left, right, m);
}
}
int main ()
{
int n, i;
ifstream f ("algsort.in");
ofstream g ("algsort.out");
f>>n;
for (i=0; i<n; i++)
f>>v[i];
merge_sort (0, n-1);
for (i=0; i<n; i++)
g<<v[i]<<" ";
return 0;
}