Pagini recente » Cod sursa (job #2199733) | Cod sursa (job #1670745) | Cod sursa (job #1150189) | Cod sursa (job #1358740) | Cod sursa (job #2458990)
#include <fstream>
#include <vector>
int main()
{
std::ifstream fin("algsort.in");
std::ofstream fout("algsort.out");
std::vector<uint32_t> v;
uint32_t n;
fin >> n;
v.reserve(n);
for (uint32_t i = 0; i < n; ++i) {
uint32_t x;
fin >> x;
v.push_back(x);
}
// Make a heap, then use selection sort
std::make_heap(v.begin(), v.end(), std::greater<uint32_t>());
for (size_t i = 3; i < v.size(); ++i) {
uint32_t bubble = v[i];
uint32_t right = i;
uint32_t left = right;
while (v[--left] > v[right])
{
v[right--] = v[left];
}
v[right] = bubble;
}
for (const auto x : v) {
fout << x << " ";
}
return 0;
}