Algoritmos e estrutura de dados
Ir para navegação
Ir para pesquisar
Um algoritmo é uma receita, ou seja, uma sequência finita de passos lógicos e bem definidos, criada para resolver um problema específico ou executar uma tarefa.
• Análise (Eficiência): A "qualidade" de um algoritmo é medida por sua complexidade:
Complexidade de Tempo: Quão rápido o algoritmo executa (quantos passos ele leva) à medida que a quantidade de dados aumenta.
Complexidade de Espaço: Quanta memória o algoritmo consome para rodar.
Estruturas de dados são formas sistemáticas de organizar, armazenar e gerenciar dados no computador, para que possam ser acessados e modificados de forma eficiente. Alguns exemplos:
Tipos Principais (Lineares):
- Array (Vetor/Lista): Uma coleção de itens armazenados em locais de memória contíguos. Ótimo para acesso rápido pelo índice (ex: lista[5]).
- Lista Ligada (Linked List): Uma coleção de itens onde cada um "aponta" para o próximo. Ótimo para inserir e remover itens no meio da lista.
- Pilha (Stack): Segue a regra "Último a Entrar, Primeiro a Sair" (LIFO - Last In, First Out). Pense em uma pilha de pratos.
- Fila (Queue): Segue a regra "Primeiro a Entrar, Primeiro a Sair" (FIFO - First In, First Out). Pense em uma fila de banco.
Tipos Principais (Não-Lineares):
- Árvores (Trees): Estrutura hierárquica. Ótima para buscas rápidas (ex: Árvore Binária de Busca) ou para representar hierarquias (ex: pastas de arquivos).
- Grafos (Graphs): Estrutura que representa conexões (redes). Usado para mapas (GPS), redes sociais, etc.
- Dica:
- Fazer uma busca binária em uma lista ligada é ineficiente