Prévia do material em texto
1. O que é um algoritmo? a) Um conjunto de instruções que resolve um problema específico. b) Uma linguagem de programação. c) Um tipo de banco de dados. d) Um software que executa tarefas automáticas. Resposta correta: a) Um conjunto de instruções que resolve um problema específico. Explicação: Um algoritmo é uma sequência finita e bem definida de instruções para resolver um problema ou realizar uma tarefa. 2. O que significa a complexidade de tempo de um algoritmo? a) O tempo necessário para um algoritmo ser escrito. b) O número de linhas de código de um algoritmo. c) O tempo que um algoritmo leva para executar em função do tamanho da entrada. d) A quantidade de memória usada por um algoritmo. Resposta correta: c) O tempo que um algoritmo leva para executar em função do tamanho da entrada. Explicação: A complexidade de tempo descreve como o tempo de execução de um algoritmo cresce à medida que o tamanho da entrada aumenta. 3. O que é a complexidade de espaço de um algoritmo? a) A quantidade de tempo que o algoritmo leva para ser executado. b) A quantidade de memória necessária para executar o algoritmo. c) A eficiência de um algoritmo em manipular dados. d) A quantidade de operações realizadas pelo algoritmo. Resposta correta: b) A quantidade de memória necessária para executar o algoritmo. Explicação: A complexidade de espaço mede a quantidade de memória adicional necessária para executar um algoritmo, além da memória de entrada. 4. O que é a notação Big O (O grande)? a) Uma notação usada para descrever o número total de linhas de código de um algoritmo. b) Uma forma de medir a complexidade de um algoritmo, representando o pior caso de desempenho. c) Uma técnica para otimizar algoritmos. d) Um tipo de algoritmo usado para ordenar números. Resposta correta: b) Uma forma de medir a complexidade de um algoritmo, representando o pior caso de desempenho. Explicação: A notação Big O é usada para descrever o comportamento de complexidade de tempo ou espaço de um algoritmo no pior caso, ajudando a entender como o algoritmo escala com entradas maiores. 5. Qual é a diferença entre os algoritmos de busca linear e busca binária? a) A busca linear é mais eficiente que a busca binária. b) A busca binária requer que os dados estejam ordenados, enquanto a busca linear não. c) A busca linear é usada em arrays ordenados e a binária em arrays desordenados. d) A busca binária só pode ser usada em listas de números. Resposta correta: b) A busca binária requer que os dados estejam ordenados, enquanto a busca linear não. Explicação: A busca binária é mais eficiente que a busca linear, mas ela só pode ser aplicada a listas ordenadas. A busca linear pode ser usada em listas não ordenadas. 6. O que é um algoritmo de ordenação? a) Um algoritmo que encontra o maior número em uma lista. b) Um algoritmo que organiza os elementos de uma lista em uma ordem específica. c) Um algoritmo que divide uma lista em partes iguais. d) Um algoritmo que encontra a média de uma lista de números. Resposta correta: b) Um algoritmo que organiza os elementos de uma lista em uma ordem específica. Explicação: Algoritmos de ordenação, como Bubble Sort, Merge Sort ou Quick Sort, organizam os elementos de uma lista em uma ordem crescente ou decrescente. 7. O que é o algoritmo de Dijkstra? a) Um algoritmo de ordenação de números. b) Um algoritmo de busca de caminho mais curto em grafos. c) Um algoritmo de compressão de dados. d) Um algoritmo para dividir grandes números. Resposta correta: b) Um algoritmo de busca de caminho mais curto em grafos. Explicação: O algoritmo de Dijkstra é usado para encontrar o caminho mais curto entre dois nós em um grafo, onde as arestas possuem pesos (distâncias). 8. Qual é a principal vantagem do algoritmo Quick Sort em relação ao Bubble Sort? a) O Quick Sort é mais fácil de implementar. b) O Quick Sort tem uma complexidade de tempo melhor no caso médio, sendo O(n log n) em vez de O(n²) como o Bubble Sort. c) O Bubble Sort é mais eficiente em grandes listas de dados. d) O Quick Sort funciona apenas em listas pequenas. Resposta correta: b) O Quick Sort tem uma complexidade de tempo melhor no caso médio, sendo O(n log n) em vez de O(n²) como o Bubble Sort. Explicação: O Quick Sort tem um desempenho muito melhor no caso médio, com complexidade de O(n log n), enquanto o Bubble Sort tem complexidade O(n²), tornando-o mais ineficiente em listas grandes. 9. O que é um algoritmo recursivo? a) Um algoritmo que repete operações de forma iterativa. b) Um algoritmo que chama a si mesmo para resolver um problema. c) Um algoritmo que divide um problema em subproblemas. d) Um algoritmo que encontra o maior valor em uma lista. Resposta correta: b) Um algoritmo que chama a si mesmo para resolver um problema. Explicação: A recursão ocorre quando uma função chama a si mesma para resolver subproblemas. Cada chamada recursiva normalmente aborda uma parte do problema original. 10. O que é um algoritmo de divisão e conquista? a) Um algoritmo que resolve problemas grandes resolvendo-os em subproblemas menores e combinando as soluções. b) Um algoritmo que divide uma lista ao meio e executa uma busca linear em cada parte. c) Um algoritmo que busca o maior valor em uma lista. d) Um algoritmo que usa uma estrutura de dados de árvore para resolver problemas. Resposta correta: a) Um algoritmo que resolve problemas grandes resolvendo-os em subproblemas menores e combinando as soluções. Explicação: O paradigma de "divisão e conquista" divide um problema em subproblemas menores, resolve cada subproblema e depois combina as soluções, como nos algoritmos Merge Sort e Quick Sort.