Julgue os itens a seguir, acerca de algoritmos para ordenação:
Qual(is) está(ão) correto(s)? O que tem de errado no(s) incorreto(s)?
Considere o algoritmo que implementa o seguinte processo: uma coleção desordenada de elementos é dividida em duas metades e cada metade é utilizada como argumento para a reaplicação recursiva do procedimento. Os resultados das duas reaplicações são, então, combinados pela intercalação dos elementos de ambas, resultando em uma coleção ordenada. Qual é a complexidade desse algoritmo?
No processo de pesquisa binária em um vetor ordenado, os números máximos de comparações necessárias para se determinar se um elemento faz parte de vetores com tamanhos 50, 1.000 e 300 são, respectivamente, iguais a , e .
No famoso jogo da Torre de Hanoi, é dada uma torre com discos de raios diferentes, empilhados por tamanho decrescente em um dos três pinos dados, como ilustra a figura acima. O objetivo do jogo é transportar-se toda a torre para um dos outros pinos, de acordo com as seguintes regras: apenas um disco pode ser deslocado por vez, e, em todo instante, todos os discos precisam estar em um dos três pinos; além disso, em nenhum momento, um disco pode ser colocado sobre um disco de raio menor que o dele; é claro que o terceiro pino pode ser usado como local temporário para os discos.
Imaginando que se tenha uma situação em que a torre inicial tenha um conjunto de 5 discos, qual o número mínimo de movimentações de discos que deverão ser realizadas para se atingir o objetivo do jogo?
A análise de complexidade provê critérios para a classificação de problemas com base na computabilidade de suas soluções, utilizando-se a máquina de Turing como modelo referencial e possibilitando o agrupamento de problemas em classes. Nesse contexto, julgue os itens a seguir.
A alternativa que lista apenas os itens corretos é:
Corrija as afirmações incorretas.
Um programador propôs um algoritmo não-recursivo para o percurso em preordem de uma árvore binária com as seguintes características:
A seguir, está apresentado o algoritmo proposto, em que λ representa o ponteiro nulo.
Procedimento preordem (ptraiz : PtrNoArvBin)
Var ptr : PtrNoArvBin;
ptr := ptraiz;
Enquanto (ptr ≠ λ) Faça
escreva (ptr↑.chave);
Se (ptr↑.dir ≠ λ) Então
push(ptr↑.dir);
Se (ptr↑.esq ≠ λ) Então
push(ptr↑.esq);
ptr := pop();
Fim_Enquanto
Fim_Procedimento
Com base nessas informações e supondo que a raiz de uma árvore binária com n nós seja passada ao procedimento preordem()
, julgue os itens seguintes.
pop()
for projetado de forma a retornar λ caso a pilha esteja vazia.preordem()
é $O(n)$.Quais afirmações estão corretas? Corrija as afirmações incorretas.