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
Q

O que é a recursividade indireta?

A

Quando uma função A chama a função B, e a função B chama a função A novamente.

26
Q

O que é recursividade aninhada?

A

Quando uma função recursiva chama outra função recursiva dentro de si.

27
Q

Qual a principal vantagem da recursividade?

A

Simplicidade, podendo resolver um problema com poucas linhas

28
Q

Qual a principal desvantagem de recursividade?

A

A chamada em loop e o empilhamento de ações

29
Q

O que é ordenação?

A

É o método de organizar um conjunto de objetos em ordem ascendente ou descendente

30
Q

Qual o objetivo da ordenação?

A

Facilitar a recuperação dos itens de um conjunto

31
Q

Com base em que a ordenação é feita? E quais as mais comuns?

A

É 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
Q

Quais os tipos de ordenação?

A

1 - Interna (IN-PLACE)
2 - Externa

33
Q

Quando uma ordenação é interna?

A

O conjunto de dados é pequeno e cabe na memória principal. O processo de ordenar é realizado na memória principal.

34
Q

Quando a ordenação é externa?

A

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
Q

Como funciona o bubble sort?

A

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
Q

Qual complexidade do algoritmo bubble sort?

A

O(n²)

37
Q

Como funciona o insertion sort?

A

Verificando cada item por vez, e inserindo ele em seu devido lugar na lista.

38
Q

Qual a complexidade do algoritmo insertion sort?

A

O(n²)

39
Q

Como funciona o selection sort?

A

Selecionando o melhor elemento para ocupar uma posição no array a cada execução.

40
Q

Qual a complexidade do selection sort?

A

O(n²)

41
Q

Qual o tipo dos algortimos merge sort e quick sort?

A

Dividir para conquistar

42
Q

Como funciona o merge sort?

A

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
Q

Qual a complexidade do merge sort?

A

O(N log2 N)

44
Q

Como funciona o quick sort?

A

Divide o vetor em duas partes, e faz isso até que o vetor tenha apenas um item, enquanto os outros ficam ordenados.

45
Q

Qual a complexidade do quick sort?

A

No pior caso: O(n²),

No melhor caso: O(N log N)

46
Q

De qual algoritmo o shell sort é derivado e como ele funciona?

A

É derivado do insertion sort e funciona com base na diminuição de incrementos

47
Q

Qual a complexidade do shell sort?

A

O(n^1.25)

48
Q

Pois quais elementos uma árvore binária T é composta?

A

Por um objeto N chamado de nó raiz, e por galhos Te e Td