Questões de Concurso
Sobre algoritmos de ordenação em algoritmos e estrutura de dados
Foram encontradas 275 questões
I.O algoritmo Bubble Sort percorre a lista múltiplas vezes, trocando elementos adjacentes de posição até que o conjunto esteja ordenado.
II.A busca binária exige que o conjunto de dados esteja previamente ordenado para que possa realizar divisões sucessivas do espaço de busca.
III.O Quick Sort baseia-se na técnica de divisão e conquista, utilizando um elemento pivô para particionar o vetor em subvetores menores.
Está CORRETO o que se afirma em:
I. O tempo de execução no pior caso do algoritmo Merge-Sort é Θ(n log n).
PORQUE
II. O procedimento MERGE executa Θ(n) operações ao combinar as duas metades, gerando a recorrência T(n)=2T(n/2)+Θ(n), cuja solução é Θ(n log n).
Sobre o método de ordenação por inserção, assinale a alternativa INCORRETA:
(__)O algoritmo de busca binária exige que o conjunto de dados esteja previamente ordenado para funcionar corretamente em tempo logarítmico.
(__)O QuickSort apresenta sua pior performance, com complexidade quadrática, quando o pivô escolhido é repetidamente o menor ou o maior elemento da lista.
(__)O algoritmo Bubble Sort é classificado como estável, o que significa que ele preserva a ordem relativa de elementos com chaves de ordenação idênticas.
(__)A busca sequencial é tecnicamente impossível de ser realizada em listas que contenham elementos do tipo ponto flutuante de precisão dupla.
Após análise, assinale a alternativa que apresenta a sequência correta dos itens acima, de cima para baixo:
Julgue o próximo item, a respeito de computação e estrutura de dados.
Ao se utilizar o método de ordenação por seleção, sempre serão necessárias 10 comparações para ordenar um conjunto com cinco elementos.
Considere o seguinte código Python que implementa um método de ordenação:

Qual método de ordenação é implementado no código acima?
sort = (array) => { if (array.length <= 1) { return array; } const pivot = array[array.length - 1]; const left = []; const right = []; for (let i = 0; i < array.length - 1; i++) { if (array[i] < pivot) { left.push(array[i]); } else {
right.push(array[i]); } } return [...sort(left), pivot, ...sort(right)];
}
Considerando n como o tamanho do vetor, assinale a alternativa CORRETA que corresponde à complexidade média de tempo do algoritmo na notação Big-O:
Sendo assim, sobre os algoritmos de ordenação, podemos afirmar que
I. Bubble sort é um algoritmo de ordenação simples e muito eficiente para grande conjunto de dados.
II. Insertion sort é um algoritmo de ordenação utilizado para um pequeno número de elementos.
III. Quick sort é um algoritmo de ordenação mais rápido, que emprega a técnica de divisão e conquista.
IV. Selection sort recebe esse nome pela maneira como ele percorre o array ao longo das iterações: ele seleciona o menor elemento atual e o troca de lugar.
Estão corretas apenas as afirmativas
Assinale a opção que representa a complexidade O (n log n) mais comummente observada em algoritmos de ordenação eficientes.
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?