Vetores
Vetores em Algoritmos e Estrutura de Dados
Vetores (ou arrays) são estruturas de dados estáticas e homogêneas que armazenam elementos do mesmo tipo em posições contíguas de memória, acessíveis por índices.
Características Principais
- Tamanho fixo: Definido na declaração e não pode ser alterado em tempo de execução.
- Acesso direto: Elementos são acessados via índice (ex:
vetor[2]
). - Eficiência: Tempo constante (O(1)) para acesso/atualização.
Operações Básicas
- Inserção: Em posição específica (custo O(n) no pior caso).
- Busca: Sequencial (O(n)) ou binária (O(log n) se ordenado).
- Remoção: Exige deslocamento de elementos (O(n)).
Vantagens
- Baixo overhead de memória.
- Cache-friendly (localidade de referência).
- Ideal quando o tamanho é conhecido antecipadamente.
Desvantagens
- Redimensionamento custoso (exige cópia para novo array).
- Inserções/remoções frequentes são ineficientes.
Aplicações em Concursos
- Problemas de armazenamento simples com acesso randômico.
- Implementação de pilhas e filas (com limitações).
- Algoritmos de ordenação (Bubble Sort, Selection Sort, etc.).
Dica para Provas
Memorize complexidades de operações e casos de uso típicos. Questões frequentemente exploram:
- Cálculo de posições em memória (ex:
endereço = base + (índice * tamanho_do_tipo)
) - Comparação com listas encadeadas