Considere o código a seguir:public class HeapSort { public v...
public class HeapSort { public void heapSort(int arr[]) { int n = arr.length; for (int i = n / 2 - 1; i >= 0; i--) { heapify(arr, n, i); } for (int i = n - 1; i > 0; i--) { int temp = arr[0]; arr[0] = arr[i]; arr[i] = temp; heapify(arr, i, 0); } } void heapify(int arr[], int n, int i) { int maior = i; int esquerda = 2 * i + 1; int direita = 2 * i + 2; if (esquerda < n && arr[esquerda] > arr[maior]) { maior = esquerda; } if (direita < n && arr[direita] > arr[maior]) { maior = direita; } if (maior != i) { int temp = arr[i]; arr[i] = arr[maior]; arr[maior] = temp; heapify(arr, n, maior); } } public static void main(String args[]) { int arr[] = {12, 11, 13, 5, 6, 7}; int n = arr.length; HeapSort heapSort = new HeapSort(); heapSort.heapSort(arr); System.out.println("Array ordenado: "); for (int i : arr) { System.out.print(i + " "); } } }
Considerando o algoritmo apresentado, qual é a principal característica deste algoritmo de ordenação?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: B
Fundamento decisivo: A decisão estava na identificação da estrutura usada pelo código: um heap binário armazenado em vetor, com filhos calculados por índices fixos e reorganização após as trocas.
- Se o código usa filhos em 2*i+1 e 2*i+2 em um vetor, pense em heap binário.
- Quando a questão pede característica principal, priorize a estrutura e o mecanismo central do código.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
QConcurso ta de sacanagem... Olha como eles colocam a questão.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo