Pagini recente » Cod sursa (job #1722056) | Cod sursa (job #1834239) | Cod sursa (job #2091296) | Cod sursa (job #2656656) | Cod sursa (job #959932)
Cod sursa(job #959932)
#include<stdio.h>
int n, a[500001];
void insertie_binara()
{
int i, j, stanga, dreapta, m, aux;
for(i=1 ; i < n; i++)
{
aux=a[i];
stanga = 0;
dreapta = i - 1;
while(stanga <= dreapta) {
m = (stanga+dreapta) / 2;
if(a[m] > aux) dreapta = m-1;
else stanga = m+1;
}
for(j= i-1 ; j >= stanga; j--)
a[j+1] = a[j];
a[stanga] = aux;
}
}
int main ()
{
FILE *f = fopen("algsort.in", "r");
fscanf(f, "%d", &n);
for(int i = 0; i < n; ++i) fscanf(f, "%d", &a[i]);
fclose(f);
insertie_binara();
f = fopen("algsort.out", "w");
for(int i = 0; i < n; ++i) fprintf(f, "%d ", a[i]);
}