Este repositório busca reunir, implementar e documentar toda minha tragetória num estudo minucioso em torno das mais diversas estruturas de dados e os algoritmos que as manipulam.
Uma estrutura de dados é uma forma específica de organizar e armazenar dados em um computador para que possam ser acessador e manipulados de forma eficiente.
Um algoritmo é um conjunto de instruções que descreve como resolver uma classe de problemas. Sendo assim, trata-se de um conjunto de regras que definem precisamente uma sequência de operações.
Na computação, a unidade básica de informação é o bit, cujo valor compreende uma entre duas possibilidades mutuamente exclusivas. A ideia é análoga a um interruptor que pode estar ligado ou desligado. Abaixo estará esse e alguns outros conceitos introdutórios que serão necessários para o entendimento dos tópicos abordados no repositório.
- Bit
- Byte
- Inteiros binários e decimais
- Números reais
- Strings e caracteres
- Hardware e software
- Ponteiros
- Arranjos
A notação Grande O é usada para descrever o comportamento de um algoritmo em termos de seu crescimento. Ela é usada para descrever o pior caso de desempenho de um algoritmo.
Estrutura de dados | Acesso | Busca | Inserção | Remoção |
---|---|---|---|---|
Array | O(1) | O(n) | O(n) | O(n) |
Lista encadeada | O(n) | O(n) | O(1) | O(1) |
Pilha | O(n) | O(n) | O(1) | O(1) |
Fila | O(n) | O(n) | O(1) | O(1) |
Tabela Hash | - | O(n) | O(n) | O(n) |
Árvore de busca binária | O(n) | O(n) | O(n) | O(n) |
Árvore binária | O(log (n)) | O(log(n)) | O(log(n)) | O(log(n)) |
Árvore rubro-negra | O(log (n)) | O(log(n)) | O(log(n)) | O(log(n)) |
Fonte: Big O Cheat Sheet.
As principais ou mais comuns operações que podem ser executadas nas estruturas de dados são:
- Pesquisa: Podemos pesquisar qualquer elemento em uma estrutura de dados.
- Classificação: Podemos classificar os elementos de uma estrutura de dados em ordem crescente ou decrescente.
- Inserção: Também podemos inserir o novo elemento em uma estrutura de dados.
- Atualização: Também podemos atualizar o elemento, ou seja, podemos substituir o elemento por outro.
- Exclusão: Também podemos executar a operação de exclusão para remover o elemento da estrutura de dados.