Pagini recente » Cod sursa (job #2490018) | Cod sursa (job #134366) | Cod sursa (job #1160808) | elfus/editorial-runda-9 | Cod sursa (job #249904)
Cod sursa(job #249904)
#include<stdio.h>
#include<algorithm>
using namespace std;
int i,aux,n,v[500111];
void down(int poz,int n){
int t=poz;
int c1,c2;
c1 = t<<1;
if(c1 < n && v[c1] < v[c1 + 1])
c1++;
while(c1<=n && v[t] < v[c1]){
aux=v[t];
v[t]=v[c1];
v[c1]=aux;
t=c1;
c1 = t<<1;
if(c1 < n && v[c1] < v[c1 + 1])
c1++;
}
}
void up(int poz,int n){
int c=poz,t;
t=c>>1;
while(t && v[c] > v[t]){
aux=v[t];
v[t]=v[c];
v[c]=aux;
c=t;
t=c>>1;
}
}
void sort(){
for(i=2;i<=n;i++){
up(i,i);
}
for(i=n;i>1;i--){
aux=v[i];
v[i]=v[1];
v[1]=aux;
down(1,i-1);
}
}
int main(){
FILE *f=fopen("algsort.in","r");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
fscanf(f,"%d",&v[i]);
fclose(f);
sort();
FILE *g=fopen("algsort.out","w");
for(i=1;i<=n;i++)
fprintf(g,"%d ",v[i]);
fclose(g);
return 0;
}