Quick actions

cmd+k|ctrl+k

Navigation

Languages

minheap

Snippet info

Language

C

Visibility

public

Author

biapolita

Created

2017-10-07T00:26:22Z

Updated

2017-10-07T00:26:22Z

#include <stdio.h>
#include <stdlib.h>

void imprimir_vetor(int v[], int n){
    int i;
    for (i=1;i<=n;i++){
        printf("[%d]->",v[i]);
    }
    printf("\n");
}

void corrigir_descendo(int v[],int n,int i){
    int f, j = i;
    while (2*j <=n){
        f = 2*j;
        if(f<n&&(v[f]>v[f+1])){
            f++;
        }
        if (v[j]<=v[f]){
            j = n;
        }
        else {
            int aux = v[j];
            v[j] = v[f];
            v[f] = aux;
            j = f;
        }
    }
}

void constroi_max_heap(int v[],int n){
    int i;
    for (i=n/2;i>=1;i--){
        corrigir_descendo(v,n,i);
        imprimir_vetor(v,n);
    }
}

int main(void) {
    int i, v[13] = { 0,1,3,1,8,2,3,5,10,-1,100,60,30 };
    printf("\nHeapify\n");
    constroi_max_heap(v,12);
    imprimir_vetor(v,12);
    return 0;
}
INFO