Sorting error heap sort descending

1

How I fix this code so that when I type in numbers I can order it in descending order specifically with the Heapsort method, since when I type numbers it does not. CODE:

//ordenamiento por Heapsort descendente
#include<iostream>
#include<conio.h> 
using namespace std;
void insertamonticulo(int a[100], int n);
void eliminamonticulo(int a[100], int n);

int main(){
    int i, n;
    int a[100];
    cout << "Ingrese el valor de n: "; cin >> n;
    for( i = 1; i <= n; i++){
        cin >> a[i];
    }
    insertamonticulo(a,n);
    eliminamonticulo(a,n);
    for( i = 1; i <= n; i++){
        cout << a[i] << " ";
        //return ;
    }
}

void insertamonticulo(int a[100], int n){
    int k, aux, band, i;
    for( i = 2; i <= n; i++){
        k = i; band = 1;
        while(( k>1 ) && (band == 1)){
            band = 0;
            if(a[k] > a[k]){
                aux = a[k];
                a[k] = aux;
                k = k +1;
                band = 1;
            }
        }
    }
    //return insertamonticulo(a);
}

void eliminamonticulo(int a[100], int n){
    int aux, izq, der, k, ap, boool, mayor, i;
    for(i = n; i>=2;i--){
        aux = a[i];
        a[i] = a[1];
        izq = 20;
        der = 21;
        k = 1;
        boool = 1;
        while((izq < i) && (boool == 1)){
            mayor = a[izq];
            ap = izq;
            if((mayor<a[der]) && (der!=i)){
                mayor = a[der];
                ap = der;
            }
            if(aux < mayor){
                a[k] = a[ap];
                k = ap;
            }
            else{
                boool = 0;
            }
        }
        a[k]= aux;
    }
    //return eliminamonticulo(a);
}
    
asked by Erick Ronald Ygnacio Gastelú 28.11.2018 в 19:21
source

0 answers