Pagini recente » Cod sursa (job #1734846) | Cod sursa (job #221880) | Cod sursa (job #3124129) | Cod sursa (job #863617) | Cod sursa (job #848896)
Cod sursa(job #848896)
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[500100],n,inserted;
void insereaza(int x){
v[++inserted]=x;
for(int i=inserted;v[i]>v[i>>1] && i>1;swap(v[i],v[i>>1]),i>>=1);
}
void sorteaza(){
for(int sorted=n;sorted>1;){
swap(v[1],v[sorted--]);
for(int j=2;j<=sorted;j<<=1){
if(j+1<=sorted && v[j+1]>v[j])
j++;
if(v[j]<v[j>>1])
break;
swap(v[j],v[j>>1]);
}
}
}
int main(){
in>>n;
for(int el,i=1;i<=n;++i){
in>>el;
insereaza(el);
}
sorteaza();
for(int i=1;i<=n;++i){
out<<v[i]<<" ";
}
}