Pagini recente » Autentificare | Cod sursa (job #883491) | Istoria paginii runda/lsp_11_12 | Cod sursa (job #1343043) | Cod sursa (job #721880)
Cod sursa(job #721880)
#include<fstream>
#define DIM 500001
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n , a[DIM] , i , j,b[DIM],ok;
void interclasare(int, int, int, int[]);
void sort( int ls, int ld , int a[]);
int main()
{
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
sort(1,n,a);
for(i=1;i<=n;i++)
g<<a[i]<<" ";
return 0;
}
void sort( int ls, int ld , int a[]){
if(ld-ls>=1){
int m=(ls+ld)/2;
sort(ls , m ,a);
sort(m+1,ld,a);
interclasare(ls,m,ld,a);
}
}
void interclasare(int ls, int m , int ld , int a[])
{
int i=ls; int j=m+1;
int k=ls-1;
while(i<=m && j<=ld)
if(a[i]<a[j])
b[++k]=a[i++];
else b[++k]=a[j++];
for(;i<=n;i++)
b[++k]=a[i];
for(;j<=n;j++)
b[++k]=a[j];
for(i=ls;i<=ld;i++)
a[i]=b[i];
}