joaoarthurbm / eda

Material escrito para a disciplina de Estruturas de Dados e Algoritmos da Universidade Federal de Campina Grande.
http://joaoarthurbm.github.io/eda
53 stars 65 forks source link

fix parent method from heap #121

Closed victorbrandaoa closed 6 months ago

victorbrandaoa commented 6 months ago

O método parent da Heap deveria fazer o floor da fórmula (index-1)/2 para funcionar no caso da raiz, visto que se não for feito o floor o resultado vai ser o índice 0, que é a própria raiz, e não o -1, que é um índice inexistente. O seguinte link explica a necessidade do uso do floor

A imagem a seguir contém evidências coletadas no jshell e nela podemos ver que a fórmula sem o floor retorna, de fato, 0. E mostramos também que o Math.floor só retorna o que esperamos (-1) quando trabalhamos com floats. Como na Heap utilizamos inteiros, precisamos então do Math.floorDiv(numerador, denominador), que testamos para a mesma árvore presente no material e os resultados foram corretos, como pode observado abaixo.

Screenshot from 2024-04-21 11-43-39

Créditos: erro encontrado pela aluna Rayanne