Algoritmos e complexidade Flashcards

1
Q

O que são sub-rotinas?

A

São blocos (de funções) que realizam tarefas específicas

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

Para o que sub-rotinas são utilizadas?

A

Principalmente para a redução de complexidade de um algoritmo

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

Quais as partes obrigatórias de uma sub-rotina?

A

Nome, tipo de retorno e corpo da função

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

Qual a diferença entre função e procedimento?

A

Funções retornam valores, enquanto procedimentos não retornam nada

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

Cite algumas vantagens de sub-rotinas:

A
  • Torna o algoritmo mais legível
  • Podem ser testadas individualmente
  • São independentes
  • Podem ser reutilizadas
  • Facilitam a manutenção do algoritmo
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

O que são vetores?

A

Uma lista de variáveis com mesmo tipo primitivo armazenada na memória de maneira sequencial

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

O que são registros?

A

Uma lista de variáveis que podem ter diferentes tipos primitivos, armazenada na memória de maneira sequencial

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

O que são ponteiros?

A

Variáveis que armazenam o endereço na memória de outras variáveis

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

Qual a principal justificativa para o uso de ponteiros?

A

Gerenciar o armazenamento de endereços na memória

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

Quais pontos a análise de algoritmos leva em consideração?

A

A exatidão do algoritmo, o tempo de execução e o espaço que ocupa em memória

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

O que é análise assintótica?

A

Uma análise que descreve a complexidade de um algoritmo quando a entrada de dados se torna muito grande.

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

O que é definição recursiva?

A

Quando um item é definido, e aparece como parte da própria definição.

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

Como também é chamada a definição recursiva?

A

Definição Indutiva

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

Quais as partes de uma definição recursiva?

A

1 - Uma base, que determina um caso simples de item definido

2 - Um passo recursivo, onde os outros casos do item vão ser definidos com base nos casos anteriores

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

Onde a definição recursiva pode ser utilizada?

A

1 - Sequência de objetos

2 - Funções

3 - Conjuntos

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

O que é uma sequência de objetos?

A

Uma lista de objetos enumerados.

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

O que ocorre com uma sequência de objetos quando é recursiva?

A

Explicita o primeiro valor e define os próximos valores com base no inicial

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

Qual a definição recursiva de uma função?

A

Um domínio de inteiros não negativos com dois passos.

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

O que é o problema de Fibonacci?

A

Uma sequência infinita de números naturais, aonde a partir do terceiro o valor é obtido pela soma dos dois números anteriores.

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

Qual a fórmula do algoritmo de Fibonacci?

A

F(n) = F(n-1) + F(n-2)

21
Q

O que é um conjunto?

A

Um conjunto de valores finitos e desordenados.

22
Q

Quais as 3 leis da recursividade?

A

1 - Deve ter um caso básico

2 - Deve mudar seu estado e se aproximar do caso básico

3 - Deve chamar a si mesmo

23
Q

Quais os tipos de recursividade?

A

1 - Em cauda

2 - Indireta

3 - Aninhada

24
Q

O que é a recursividade em cauda?

A

Quando a função chama ela mesmo no final da sua execução

25
O que é a recursividade indireta?
Quando uma função A chama a função B, e a função B chama a função A novamente.
26
O que é recursividade aninhada?
Quando uma função recursiva chama outra função recursiva dentro de si.
27
Qual a principal vantagem da recursividade?
Simplicidade, podendo resolver um problema com poucas linhas
28
Qual a principal desvantagem de recursividade?
A chamada em loop e o empilhamento de ações
29
O que é ordenação?
É o método de organizar um conjunto de objetos em ordem ascendente ou descendente
30
Qual o objetivo da ordenação?
Facilitar a recuperação dos itens de um conjunto
31
Com base em que a ordenação é feita? E quais as mais comuns?
É feita com base em uma chave de ordenação. E, as chaves de ordenação mais comuns são: - Ordem numérica - Ordem alfabetica (lexicográfica)
32
Quais os tipos de ordenação?
1 - Interna (IN-PLACE) 2 - Externa
33
Quando uma ordenação é interna?
O conjunto de dados é pequeno e cabe na memória principal. O processo de ordenar é realizado na memória principal.
34
Quando a ordenação é externa?
Quando o conjunto de dados não cabe todo na memória principal. Podendo estar em um disco externo em formato de registro que serão acessados sequencialmente
35
Como funciona o bubble sort?
Comparando o elemento da vez ao próximo. Se não estiver na ordem correta, são trocados. Isso é repetido até que todas as trocam sejam feitas
36
Qual complexidade do algoritmo bubble sort?
O(n²)
37
Como funciona o insertion sort?
Verificando cada item por vez, e inserindo ele em seu devido lugar na lista.
38
Qual a complexidade do algoritmo insertion sort?
O(n²)
39
Como funciona o selection sort?
Selecionando o melhor elemento para ocupar uma posição no array a cada execução.
40
Qual a complexidade do selection sort?
O(n²)
41
Qual o tipo dos algortimos merge sort e quick sort?
Dividir para conquistar
42
Como funciona o merge sort?
Nele, o vetor é divido em vetores com a metade do tamanho original. Isso acontece até que o vetor tenha somente um item, e esteja ordenado e intercalado
43
Qual a complexidade do merge sort?
O(N log2 N)
44
Como funciona o quick sort?
Divide o vetor em duas partes, e faz isso até que o vetor tenha apenas um item, enquanto os outros ficam ordenados.
45
Qual a complexidade do quick sort?
No pior caso: O(n²), No melhor caso: O(N log N)
46
De qual algoritmo o shell sort é derivado e como ele funciona?
É derivado do insertion sort e funciona com base na diminuição de incrementos
47
Qual a complexidade do shell sort?
O(n^1.25)
48
Pois quais elementos uma árvore binária T é composta?
Por um objeto N chamado de nó raiz, e por galhos Te e Td