quarta-feira, 24 de abril de 2013

Red-black Trees

MO417 - QUESTÃO PARA A PROVA ORAL

Número:

Enunciado: Um dicionário futebolístico é indexado através de uma árvore Vermelho-Preto, onde cada nó é um ponteiro para uma lista de palavras iniciadas com a mesma letra.
Antes de inserir uma palavra no dicionário, o sistema verifica se o nó com a chave correspondente já está na árvore, se não estiver ele usa o método RB-INSERT abaixo para incluí-lo.
Sabendo que foram inseridas apenas as seguintes palavras no dicionário (Na mesma ordem em que são apresentadas), responda: Qual das alternativas abaixo está correta?

Futebol - Liga - Atacante - Meia - Equipe - Número - Goleiro - Obstrução

RB-INSERT(T, z)
01  y = T.nil
02  x = T.root
03  while (x != T.nil) {
04     y = x
05     if (z.key < x.key)
06          x = x.left
07     else x = x.right
08  }
09  z.p = y
10  if (y == T.nil)
11  {  T.root  = z }
12  elseif (z.key < y.key)
13  {  y.left  = z }
14  else
15  {  y.right = z }
16  z.left  = T.nil
17  z.right = T.nil
18  z.color = RED
19  RB-INSERT-FIXUP(T, z)
RB-INSERT-FIXUP(T, z)
01 while (z.p.color == RED) {
02    if (z.p == z.p.p.left) {
03       y = z.p.p.right
04       if (y.color == RED) {
05          z.p.color = BLACK
06          y.color   = BLACK
07          z.p.p.color = RED
08          z = z.p.p
09       } else {
10          if (z == z.p.right) {
11             z =  z.p
12             LEFT-ROTATE(T, z) }
13          z.p.color = BLACK
14          z.p.p.color = RED
15          RIGHT-ROTATE(T, z.p.p) }
16    } else {
17    /* Código igual a cláusula "then"
18     com "right" e "left" trocados.*/ }
19 }
20 T.root.color = BLACK

a. A altura de preto dessa árvore é 3.
b. O número de nós internos na cor preta é superior aos de cor vermelha.
c. Os nós com as chaves "G", "O" e "L" possuem a mesma cor.
d. Os nós com as chaves "F", "L" e "A" ficaram em níveis diferentes.
e. NDA

Ideia original de: Anderson Coelho Weller

quinta-feira, 11 de abril de 2013

Greedy Algorithms

MO417 - QUESTÃO PARA A PROVA ORAL

Número:

Enunciado: Um arquivo bitmap, contendo um conjunto de 100 pixels, foi compactado através do algoritmo de Huffman. Seguindo a quantidade de pixels por cor (existentes nesse arquivo) e o algoritmo gerador do código de prefixo de Huffman, apresentados abaixo, responda:
Qual é o tamanho (em bits) desse conjunto de pixels após a compactação?

COR Red Green Blue Black White TOTAL
Número de Pixels 5 10 15 20 50 100

Huffman(Cores)
   n = Cores.lenght
   Q = Cores
   for i = 1 to n-1
      Aloca um novo nó 'z'
      z.esquerda = x = Extrair-Menor(Q)
      z.direita  = y = Extrair-Menor(Q)
      z.pixels   = x.pixels + y.pixels
      Inserir-Ordenado(Q, z)
   return Extrair-Menor(Q) // Retorna a raiz da árvore

a. 175
b. 180
c. 195
d. 200
e. NDA

Ideia original de: Anderson Coelho Weller

sexta-feira, 5 de abril de 2013

Dynamic programming

MO417 - QUESTÃO PARA A PROVA ORAL

Número:

Enunciado: Comparando os métodos "Dividir e Conquistar" e "Programação Dinâmica", qual das alternativas abaixo está INCORRETA:

a. Ambos resolvem problemas combinando as soluções para subproblemas.
b. Comparado com o método de "Programação Dinâmica", algoritmos "Dividir e Conquistar" trabalham mais do que o necessário, resolvendo repetidamente subproblemas comuns.
c. Algoritmos "Dividir e Conquistar" particionam o problema em subproblemas independentes, resolvem-nos recursivamente, e combinam suas soluções para resolver o problema pricipal.
d. A ideia principal da "Programação Dinâmica" é resolver cada subproblema apenas uma vez, salvar suas respostas em uma tabela, evitando assim o trabalho de recalcular a resposta cada vez o subproblema é encontrado.
e. NDA

Ideia original de: Anderson Coelho Weller

quinta-feira, 4 de abril de 2013

Dynamic programming

MO417 - QUESTÃO PARA A PROVA ORAL

Número:

Enunciado: Dada as sequências X=< S, U, S, S > e Y = < A, S, S, E, S, S >, é fácil visualizar que a LCS (Longest Common Subsequence) delas é < S, S, S >. Porém, como fica a ligação entre as letras da sequência Y com as letras da sequência X?

a.   A S   S E S S
    S U S   S  
 
b.   A S   S E S S
    S U S     S
 
c.   A S   S E S S
    S U     S S
 
d.   A S S E   S S
      S   U S S
 
e.   NDA            

Ideia original de: Anderson Coelho Weller