Pagini recente » Cod sursa (job #1294031) | Cod sursa (job #505727) | Cod sursa (job #1430514) | Cod sursa (job #1950931) | Cod sursa (job #1029133)
#include<iostream>
#include<conio.h>
#include<math.h>
#include<fstream>
using namespace std;
void merge(int a[],int p,int q,int r);
void mergesort(int a[],int p,int r){
int q;
if(p<r){
q=(p+r)/2;
mergesort(a,p,q);
mergesort(a,q+1,r);
merge(a,p,q,r);
}
}
int b[50];
void merge(int a[],int p,int q,int r){
int i,j,k;
k=0;
i=p;
j=q+1;
while(i<=q && j<=r){
if(a[i]<a[j])
b[k++]=a[i++];
else
b[k++]=a[j++];
}
while(i<=q)
b[k++]=a[i++];
while(j<=r)
b[k++]=a[j++];
for(i=r;i>=p;i--)
a[i]=b[--k];
}
int main(){int n,a[50],i;
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for(i=0;i<n;i++)
f>>a[i];
f.close();
mergesort(a,0,n);
for(i=0;i<n;i++)
g<<"\t"<<a[i];
g.close();
return 0;}