Cod sursa(job #2898306)

Utilizator Alexandra13Andreea Alexandra Paun Alexandra13 Data 6 mai 2022 16:21:54
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#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);
}