Pagini recente » Cod sursa (job #3276658) | Cod sursa (job #58319) | Cod sursa (job #1405398) | Cod sursa (job #1139430) | Cod sursa (job #273200)
Cod sursa(job #273200)
#include <stdio.h>
#include <stdlib.h>
#include<algorithm>
using namespace std;
FILE *f,*g;
long nt,a[500001];;
void insbn(long x)
{ long i, p, u, mj;
p=0; u=nt-1;
if(x>=a[u]){a[++u]=x;nt++;return;}
else{
if(x<=a[p])p=0;
else{
p=0; u=nt;
while(p<=u)
{ mj=(p+u)/2;
if(x<=a[mj])
u=mj-1;
else
p=mj+1;
}}
for(i=nt+1; i>p; i--)
{ a[i]=a[i-1];
}
a[p]=x;
nt++;
}
}
int main()
{
long n,i;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%ld",&n);
nt=0;
for(i=0; i<n; i++)
{scanf("%ld",&a[i]);
if(i>0)
insbn(a[i]);
}
//sort(a,a+n);
for(i=0; i<n; i++) printf("%ld ",a[i]);
return 0;
}