Pagini recente » Cod sursa (job #751557) | Cod sursa (job #2071076) | redsnow_2 | Rezultate Info Oltenia 2018 Proba pe Echipe | Cod sursa (job #721872)
Cod sursa(job #721872)
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n , a[500001] , i , j,b[500001],ok;
void interclasare(int, int, int, int[]);
void sort( int ls, int ld , int a[100]);
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[100]){
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[100])
{
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];
}