Pagini recente » Cod sursa (job #3215845) | Cod sursa (job #1924406) | Cod sursa (job #1019250) | Cod sursa (job #1959528) | Cod sursa (job #1807247)
#include <fstream>
#define DIM 500001
using namespace std;
int i,n,j,p,c;
int v[DIM],w[DIM];
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
int main (){
fin>>n;
for (i=1;i<=n;i++)
fin>>v[i];
// am transformat in heapmax
for (i=2;i<=n;i++){
c = i;
p = c/2;
while (v[c] > v[p] && p != 0){
swap (v[c],v[p]);
c = p;
p = p/2;
}
}
w[1] = v[1];
int k = 1;
for (i=n;i>=2;i--){
swap (v[1],v[i]);
p = 1;
c = 2*p;
while (c <= i-1){
if (c+1 <= i-1 && v[c+1] > v[c])
c++;
if (v[p] < v[c]){
swap (v[p],v[c]);
p = c;
c = 2*p;
}
else
break;
}
//fout<<v[1]<<" ";
w[++k] = v[1];
}
for (i=k;i>=1;i--)
fout<<w[i]<<" ";
return 0;
}