Paradigmas de Algoritmos - Fundamentos Flashcards

1
Q

O que é um paradigma de algoritmo?

A

É uma abordagem ou técnica geral utilizada para projetar e implementar algoritmos para resolver problemas computacionais.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quais são os principais paradigmas de algoritmos?

A

ivisão e conquista, programação dinâmica, ganancioso (greedy), força bruta e backtracking.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

O que caracteriza o paradigma “divisão e conquista”?

A

Ele divide um problema em subproblemas menores, resolve esses subproblemas e combina as soluções para resolver o problema original.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Como o paradigma ganancioso resolve problemas?

A

Faz escolhas locais ótimas em cada etapa, com a esperança de que isso leve a uma solução global ótima.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Qual é a principal desvantagem do paradigma de força bruta?

A

Geralmente, é ineficiente porque explora todas as possibilidades, levando a tempos de execução elevados.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

O que é programação dinâmica?

A

É um paradigma de algoritmos que resolve problemas ao decompor em subproblemas sobrepostos e armazenando suas soluções para evitar cálculos redundantes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quais são os dois componentes principais de um problema adequado para programação dinâmica?

A

Subproblemas sobrepostos e propriedade de subestrutura ótima.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

O que significa subproblemas sobrepostos no paradigma dinâmico?

A

Quando um problema pode ser dividido em subproblemas menores, e esses subproblemas se repetem várias vezes no cálculo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

O que é a propriedade de subestrutura ótima?

A

Significa que a solução ótima de um problema pode ser construída a partir das soluções ótimas de seus subproblemas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Qual é a diferença entre a abordagem “top-down” e “bottom-up” na programação dinâmica?

A

“Top-down” usa recursão com memorização, enquanto “bottom-up” constrói soluções iterativamente em uma tabela.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

O que é a tabela em programação dinâmica?

A

É uma estrutura de dados, geralmente um array ou matriz, usada para armazenar soluções de subproblemas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Como a programação dinâmica resolve o problema da sequência de Fibonacci?

A

Armazena os valores de Fibonacci previamente calculados em um array, evitando cálculos repetidos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qual é o benefício de usar memoização em programação dinâmica?

A

Reduz a redundância ao salvar os resultados de subproblemas já calculados, melhorando a eficiência.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quando a programação dinâmica pode ser menos eficiente?

A

Quando o problema não possui subproblemas sobrepostos ou subestrutura ótima.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Qual é uma armadilha comum ao implementar programação dinâmica?

A

Definir incorretamente o estado ou a transição entre estados.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

O que é um “estado” em programação dinâmica?

A

Uma representação compacta de um subproblema que inclui todas as informações necessárias para resolvê-lo.

17
Q

Por que é importante definir corretamente a transição de estado?

A

Porque a transição determina como os subproblemas se relacionam e garante que as soluções parciais levem à solução final.

18
Q

Qual das seguintes é uma característica necessária para aplicar programação dinâmica?
(a) Subproblemas independentes
(b) Soluções aproximadas
(c) Subestrutura ótima
(d) Algoritmos de força bruta

A

(c) Subestrutura ótima

19
Q

O que a tabela em programação dinâmica armazena?
(a) Todas as entradas do problema
(b) Resultados de subproblemas já resolvidos
(c) Solução final apenas
(d) Dados de entrada ordenados

A

(b) Resultados de subproblemas já resolvidos

20
Q

Qual é a complexidade temporal típica de um algoritmo de programação dinâmica?
(a) Exponencial
(b) Polinomial
(c) Logarítmica
(d) Depende do problema

A

(d) Depende do problema

21
Q

Qual das seguintes técnicas é mais usada em programação dinâmica?
(a) Divisão e conquista
(b) Ordenação e busca
(c) Top-down com memoização
(d) Pesquisa aleatória

A

(c) Top-down com memoização