Pagini recente » Cod sursa (job #45397) | Cod sursa (job #2485885) | Cod sursa (job #280487) | Cod sursa (job #1840036) | Cod sursa (job #1050715)
#include <iostream>
#include <fstream>
#include<algorithm>
using namespace std;
long cn;
int v[500001];
void adaugare (int i)
{
int poz = i;
while (v[poz] < v[poz/2])
{
swap(v[poz], v[poz/2]);
poz = poz/2;
}
}
void sortare(int poz )
{
int i;
swap(v[1], v[cn]);
cn --;
for (i=poz; i<=cn; i++)
{
poz = i;
while (v[poz] < v[poz/2])
{
swap(v[poz], v[poz/2]);
poz = poz/2;
}
}}
int main()
{
long i,n;
ifstream f("algsort.in");
ofstream g("algsort.out");
f >> n;
f >> v[1];
for (i=2; i<=n; i++)
{
f >> v[i];
adaugare(i);
}
cn = n;
i = 1;
while (i<=cn)
{
g << v[i] <<" ";
sortare(i);
}
return 0;
}