Pagini recente » Cod sursa (job #802727) | Cod sursa (job #2410078) | Cod sursa (job #2537203) | Cod sursa (job #1059715) | Cod sursa (job #240560)
Cod sursa(job #240560)
#include<fstream>
#define NMAX 500010
using namespace std;
int v[NMAX];
void interclasare(int init, int pivot, int fin)
{
int a[500],i,j,k=0;
i=init;
j=pivot+1;
while((i<=pivot)&&(j<=fin))
{
if(v[i]<v[j]) a[k++]=v[i++];
else a[k++]=v[j++];
}
while(i<=pivot) a[k++]=v[i++];
while(j<=fin) a[k++]=v[j++];
int t=init;
for(k=0;k<=(fin-init);k++) v[t++]=a[k];
}
void merge_sort(int init,int fin)
{
if(fin-init>=1)
{
int temp=(init+fin)/2;
merge_sort(init,temp);
merge_sort(temp+1,fin);
interclasare(init,temp,fin);
}
}
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;
}