Você está na página 1de 4

TERMO DE CONDUTA

Declaro assumir o compromisso de confidencialidade e de sigilo escrito, fotográfico


e verbal sobre as questões do exame ou avaliação pessoal que me serão
apresentadas, durante o curso desta disciplina. Comprometo-me a não revelar,
reproduzir, utilizar ou dar conhecimento, em hipótese alguma, a terceiros, e a não
utilizar tais informações para gerar benefício próprio ou de terceiros. Reitero minha
ciência de que não poderei fazer cópia manuscrita, registro fotográfico, filmar ou
mesmo gravar os enunciados que me são apresentados. Declaro, ainda, estar
ciente de que o não cumprimento de tais normas caracteriza infração ética, podendo
acarretar punição de acordo com as regras da minha universidade.
Ciente,

<Assinatura do aluno>
Curso de Tecnologia em Sistemas de Computação
Disciplina: Estrutura de Dados e Algoritmos
APX1 - Primeiro Semestre de 2021

Nome -
Assinatura -

Observações:

1. Use caneta para preencher o seu nome e assinar nas folhas de questões
e nas folhas de respostas.

2. A prova pode ser feita à mão ou digitada.

3. Todas as respostas devem ser transcritas nas folhas de respostas. As


respostas nas folhas de questões não serão corrigidas.

4. A entrega da prova deve ser feita da mesma forma adotada para entrega
das ADs.

1
1. (2,0) Descreva um algoritmo recursivo que encontra o maior elemento
de uma lista sequencial com n elementos distintos. Comente sobre a
complexidade de seu algoritmo.

2. (2,0) É dada uma lista sequencial L com n elementos, à qual deseja-se


aplicar o algoritmo de ordenação por seleção. Assinale V ou F para
cada afirmação abaixo, justificando.

(a) (1,0) O algoritmo efetua no pior caso n − 1 trocas entre elementos


para ordenar L.
(b) (1,0) Cada troca entre elementos efetuada pelo algoritmo é prece-
dida por exatamente n − 1 comparações entre elementos.

3. (2,0) Considere o seguinte vetor ordenado:

V = [16, 23, 28, 35, 37, 39, 49, 51, 56, 58, 64, 68, 70, 73, 78].

(a) (1,0) Responda: para quais valores de k existe uma execução do


algoritmo de busca binária que efetua exatamente k comparações?
(b) (1,0) Para cada valor de k do item (a), forneça um exemplo de valor
de entrada x que, ao ser buscado no vetor V , leva o algoritmo de busca
binária a efetuar exatamente k comparações.

4. (2,0) Considere uma fila F contendo as posições de 1 a 4. A variável


f marca a posição de inı́cio da fila (“frente”), e a variável r marca a
posição de fim da fila (“retaguarda”). No inı́cio, a fila F encontra-se
vazia, e as variáveis f e r valem zero.
Usamos a notação R para denotar a operação de remoção de um ele-
mento da fila F , e a notação I(X) para denotar a operação de inserção
de um elemento X na fila F .
Considere a seguinte sequência de operações em F :

I(A), I(B), R, I(C), I(D), I(E), R, R, I(F )

Desenhe como fica a fila F após a sequência de operações acima, e


forneça os valores finais das variáveis f e r. Use um traço (–) para

2
denotar as posições vazias. Como um exemplo de configuração, po-
derı́amos ter: F = ( − C D − ), com f = 2 e r = 3.

5. (2,0) Dada uma lista simplesmente encadeada L com n nós, descrever


um algoritmo para inverter a direção do encadeamento de L. Isto é, o
algoritmo deve transformar L em uma outra lista, contendo exatamente
os mesmos nós do que L, porém na ordem invertida. Pede-se:

(a) (1,0) Descrever a estratégia geral do algoritmo, em palavras.


(b) (1,0) Determinar e justificar a complexidade do algoritmo.

Você também pode gostar