Cod sursa(job #273841)

Utilizator cameleonGeorgescu Dan cameleon Data 9 martie 2009 09:05:57
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include <stdio.h>
#include <stdlib.h>
#include<algorithm>
using namespace std;
FILE *f,*g;
long n,a[500001],i;
void inserare(int p, int u)
{
if(a[i]>a[u])return;
if(a[i]>a[p])
{
	while (p<=u)
	{
	long mij=(p+u)/2;
	if(a[i]<a[mij])u=mij-1;
	else 
		if(a[i]==a[mij]){p=mij;u=mij-1;}
		else p=mij+1;
	}
}
	long aux=a[i];
	for(long j=i;j>p;j--)a[j]=a[j-1];
	a[p]=aux;
}
int main()
{
		
	freopen("algsort.in","r",stdin);
	freopen("algsort.out","w",stdout);
	scanf("%ld",&n);
	
	for(i=0; i<n; i++) 
		scanf("%ld",&a[i]);
		
	for(i=1;i<n;i++)
		inserare(0,i-1);

	for(i=0; i<n; i++) printf("%ld ",a[i]);
	return 0;
}