Pagini recente » Cod sursa (job #1281436) | Cod sursa (job #2734629) | Cod sursa (job #2684615) | Cod sursa (job #2023610) | Cod sursa (job #2898306)
#include <iostream>
using namespace std;
void heapify(int v[], int n, int i)
{
int maxim = i;
int l = 2 * i + 1;
int r = 2 * i + 2;
if (l < n && v[l] > v[maxim])
maxim = l;
if (r < n && v[r] > v[maxim])
maxim = r;
if (maxim != i) {
swap(v[i], v[maxim]);
heapify(v, n, maxim);
}
}
void heapSort(int v[], int n)
{
for (int i = n/2-1; i >= 0; i--)
heapify(v, n, i);
for (int i = n-1; i >= 0; i--) {
swap(v[0], v[i]);
heapify(v, i, 0);
}
}
void afis(int v[], int n)
{
for (int i = 0; i < n; i++)
cout << v[i] << " ";
cout << "\n";
}
int main()
{
int v[] = { 12, 11, 13, 5, 6, 7 };
int n = sizeof(v) / sizeof(v[0]);
heapSort(v, n);
cout << "Vectorul sortat este \n";
afis(v, n);
}