Pagini recente » Cod sursa (job #1919771) | Cod sursa (job #2305290) | Cod sursa (job #1323508) | Cod sursa (job #1017977) | Cod sursa (job #745193)
Cod sursa(job #745193)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
void add(int k);
vector<int> q(1);
void de(int i);
int main(){
ifstream cinr ("algsort.in");
ofstream cour ("algsort.out");
int n, a;
q[0]=-1;
cinr >> n;
for(int i=1; i<=n; i++){
cinr >> a;
add(a);
}
for(int i=1; i<=n; i++){
cour << q[1] << " ";
q[1]=q[q.size()-1];
q.pop_back();
de(1);
}
return 0;
}
void de(int i){
int w,t,y,s=q.size();
while(2*i+1<s){
t=2*i;
if(q[t]>q[t+1]){ t++; }
if(q[i]>q[t]){
w=q[t];
q[t]=q[i];
q[i]=w;
i=t;
}
else { return; }
}
if(2*i<s){
if(q[i]>q[2*i]){
w=q[i];
q[i]=q[2*i];
q[2*i]=w;
}
}
}
void add(int k){
q.push_back(k);
int y,i=q.size()-1;
while(q[i/2]>q[i]){
y=q[i/2];
q[i/2]=q[i];
q[i]=y;
i/=2;
}
}