This commit is contained in:
Max do Val Machado 2020-09-22 08:23:12 -03:00
parent dd26896b18
commit 1acf228838
3 changed files with 10 additions and 10 deletions

View File

@ -1,6 +1,6 @@
#include "heapsort.h" #include "heapsort.h"
//============================================================================= //=============================================================================
void constroi(int *array, int tamHeap){ void construir(int *array, int tamHeap){
for(int i = tamHeap; i > 1 && array[i] > array[i/2]; i /= 2){ for(int i = tamHeap; i > 1 && array[i] > array[i/2]; i /= 2){
swap(array + i, array + i/2); swap(array + i, array + i/2);
} }
@ -16,7 +16,7 @@ int getMaiorFilho(int *array, int i, int tamHeap){
return filho; return filho;
} }
//============================================================================= //=============================================================================
void reconstroi(int *array, int tamHeap){ void reconstruir(int *array, int tamHeap){
int i = 1; int i = 1;
while(i <= (tamHeap/2)){ while(i <= (tamHeap/2)){
int filho = getMaiorFilho(array, i, tamHeap); int filho = getMaiorFilho(array, i, tamHeap);
@ -38,14 +38,14 @@ void heapsort(int *array, int n) {
//Contrucao do heap //Contrucao do heap
for(int tamHeap = 2; tamHeap <= n; tamHeap++){ for(int tamHeap = 2; tamHeap <= n; tamHeap++){
constroi(arrayTmp, tamHeap); construir(arrayTmp, tamHeap);
} }
//Ordenacao propriamente dita //Ordenacao propriamente dita
int tamHeap = n; int tamHeap = n;
while(tamHeap > 1){ while(tamHeap > 1){
swap(arrayTmp + 1, arrayTmp + tamHeap--); swap(arrayTmp + 1, arrayTmp + tamHeap--);
reconstroi(arrayTmp, tamHeap); reconstruir(arrayTmp, tamHeap);
} }
//Alterar o vetor para voltar a posicao zero //Alterar o vetor para voltar a posicao zero

View File

@ -3,11 +3,11 @@
//============================================================================= //=============================================================================
#include "geracao.h" #include "geracao.h"
//============================================================================= //=============================================================================
void constroi(int *array, int tamHeap); void construir(int *array, int tamHeap);
//============================================================================= //=============================================================================
int getMaiorFilho(int *array, int i, int tamHeap); int getMaiorFilho(int *array, int i, int tamHeap);
//============================================================================= //=============================================================================
void reconstroi(int *array, int tamHeap); void reconstruir(int *array, int tamHeap);
//============================================================================= //=============================================================================
void heapsort(int *array, int n); void heapsort(int *array, int n);
//============================================================================= //=============================================================================

View File

@ -37,14 +37,14 @@ class Heapsort extends Geracao {
//Contrucao do heap //Contrucao do heap
for(int tamHeap = 2; tamHeap <= n; tamHeap++){ for(int tamHeap = 2; tamHeap <= n; tamHeap++){
constroi(tamHeap); construir(tamHeap);
} }
//Ordenacao propriamente dita //Ordenacao propriamente dita
int tamHeap = n; int tamHeap = n;
while(tamHeap > 1){ while(tamHeap > 1){
swap(1, tamHeap--); swap(1, tamHeap--);
reconstroi(tamHeap); reconstruir(tamHeap);
} }
//Alterar o vetor para voltar a posicao zero //Alterar o vetor para voltar a posicao zero
@ -56,14 +56,14 @@ class Heapsort extends Geracao {
} }
public void constroi(int tamHeap){ public void construir(int tamHeap){
for(int i = tamHeap; i > 1 && array[i] > array[i/2]; i /= 2){ for(int i = tamHeap; i > 1 && array[i] > array[i/2]; i /= 2){
swap(i, i/2); swap(i, i/2);
} }
} }
public void reconstroi(int tamHeap){ public void reconstruir(int tamHeap){
int i = 1; int i = 1;
while(i <= (tamHeap/2)){ while(i <= (tamHeap/2)){
int filho = getMaiorFilho(i, tamHeap); int filho = getMaiorFilho(i, tamHeap);