Programação  
 
Rede de conhecimento computador >> Programação >> Programação Visual Basics >> Content
16 questões de pontuação de algoritmos de design e análise-cs1201?
Perguntas de 16 pontos sobre design e análise de algoritmos (CS1201):

1. (a) O que é um algoritmo de dividir e conquistar? Explique a abordagem geral dos algoritmos de dividir e conquistar. (6 marcas)
(b) Use a abordagem dividir e conquistar para projetar um algoritmo para encontrar o elemento mínimo em uma matriz de n elementos. Analise a complexidade de tempo do seu algoritmo. (10 pontos)

2. (a) Explique o conceito de técnicas de hashing e resolução de colisão. (6 marcas)
(b) Considere uma tabela hash de tamanho m e um conjunto de n elementos a serem hashados. Suponha que os elementos estejam distribuídos uniformemente entre os m slots. Qual é a probabilidade de uma colisão quando n =m/2? Analise o número médio de comparações necessárias para inserir com êxito todos os elementos na tabela hash usando sondagem linear. (10 pontos)

3. (a) Descreva o conceito de programação dinâmica e explique como ele difere da abordagem de dividir para conquistar. (6 marcas)
(b) Use programação dinâmica para resolver o problema do corte de barras, onde uma barra de comprimento n pode ser cortada em barras menores e cada barra de comprimento i tem um preço p[i]. O objetivo é encontrar o rendimento máximo que pode ser obtido cortando a haste em pedaços menores. Analise a complexidade de tempo e espaço do seu algoritmo. (10 pontos)

4. (a) Explique o conceito de NP-completude e seu significado na análise de algoritmos. (6 marcas)
(b) Prove que o seguinte problema é NP-completo:Dado um conjunto de n itens com seus respectivos pesos e valores, determine se existe um subconjunto desses itens cujo peso total é menor ou igual a um determinado limite e cujo total o valor é maximizado. (10 pontos)

5. (a) Explique o conceito de análise amortizada de algoritmos. Por que é usado e quais são seus benefícios? (6 marcas)
(b) Realize uma análise amortizada da estrutura de dados da pilha, onde as operações push e pop são as únicas operações permitidas. Determine a complexidade média de tempo de cada operação. (10 pontos)

6. (a) Descreva o algoritmo de Kruskal para encontrar a árvore geradora mínima de um grafo não direcionado ponderado. (6 marcas)
(b) Aplique o algoritmo de Kruskal ao gráfico a seguir e encontre a árvore geradora mínima:

```
(1)---2---(3)
/ |
/ |
5/4
-----------
(4)---6---(5)
```

Calcule o peso total da árvore geradora mínima. (10 pontos)

7. (a) Explique o conceito de tipo topológico de grafo acíclico direcionado (DAG). (6 marcas)
(b) Execute uma classificação topológica no seguinte DAG:

```
(1) -> (2) -> (3)
\/
-> (4)
```

Forneça a ordem dos vértices na classificação topológica. (10 pontos)

8. (a) Descreva o conceito de árvores binárias de busca (BSTs). Explique como os BSTs são usados ​​para operações eficientes de pesquisa e inserção. (6 marcas)
(b) Insira os seguintes elementos em um BST inicialmente vazio:20, 10, 30, 5, 15, 25, 35. Desenhe o BST resultante e analise a complexidade de tempo da busca por um elemento neste BST. (10 pontos)

Lembre-se de demonstrar uma compreensão clara dos conceitos, fornecer explicações corretas e analisar as complexidades de tempo e espaço dos algoritmos quando necessário.

Anterior :

Próximo :
  Os artigos relacionados
·Como Fazer um Temporizador eletrônico 
·Qual é o significado do termo na área de processament…
·Como remover uma caixa de listagem Visual Basic 
·Como adicionar uma linha para uma caixa de texto em Vis…
·Como exportar os dados de um campo para outro em Access…
·Como mesclar um XML em Crystal Reports 
·Como imprimir em uma impressora específica em VB.NET 
·Como alterar as configurações de cores em Visual Basi…
·Como o código de software chat sem usar um banco de da…
·Como usar formulários em VBA 
  Artigos em destaque
·Arredondando números em Javascript 
·Como fazer um Loading Bar Legal em Visual Basic 
·Como configurar Joomla Depuração no Eclipse 
·Como aprender Java Script for Free 
·Como criar Construtores de Java 
·Codificação Java para Box Volume 
·Como alterar um tamanho de Java Heap em um console WebL…
·Como dividir uma URL muito tempo no 2 
·Como usar um ImageButton em Android 
·Como criar um documento do Word de uma consulta SQL 
Cop e direita © Rede de conhecimento computador http://ptcomputador.com Todos os Direitos Reservados