Este repositório contém implementações e explicações de algoritmos e estruturas de dados em Go (Golang). Ele foi projetado para ajudar desenvolvedores a entender conceitos fundamentais de algoritmos, estruturas de dados e análise de complexidade, com exemplos práticos e bem documentados.
O projeto está organizado em pastas, cada uma representando um tópico ou conceito específico. Abaixo está uma visão geral das pastas e seus conteúdos:
- Descrição: Exemplos de recursão direta, indireta, tail recursion e head recursion.
- Arquivos principais:
sumrange.go
: Soma recursiva de números.tailcall.go
: Exemplo de recursão em cauda.fatorial.go
: Implementação do cálculo de fatorial.indirect.go
: Exemplo de recursão indireta.head.go
: Exemplo de recursão em cabeça.callstack.go
: Demonstração do funcionamento da pilha de chamadas.
- Documentação: README
- Descrição: Estratégias e padrões para resolução de problemas.
- Arquivos principais:
bruteforce.go
: Busca linear usando força bruta.dividenconquer.go
: Exemplo de divisão e conquista com Fibonacci.backtracing.go
: Algoritmo de backtracking para combinações de soma.
- Documentação: README
- Descrição: Implementações de estruturas de dados lineares.
- Subpastas:
- STACK: Implementação de pilhas (LIFO).
- Arquivos:
stack.go
,sliceStack.go
- Documentação: README
- Arquivos:
- QUEUE: Implementação de filas (FIFO) e filas circulares.
- Arquivos:
queue.go
,linkedQueue.go
,circularQueue.go
- Documentação: README
- Arquivos:
- SET: Implementação de conjuntos com operações de união e interseção.
- Arquivo:
sets.go
- Documentação: README
- Arquivo:
- SINGLE_LINKED_LIST: Implementação de listas encadeadas simples.
- Arquivo:
linkedlist.go
- Documentação: README
- Arquivo:
- DOUBLY_LINKED_LIST: Implementação de listas duplamente encadeadas.
- Arquivo:
doubly.go
- Documentação: README
- Arquivo:
- STACK: Implementação de pilhas (LIFO).
- Descrição: Explicações e exemplos de análise de complexidade de algoritmos.
- Subpastas:
- constante: Exemplos de complexidade constante
O(1)
.- Arquivo:
constant.go
- Documentação: README
- Arquivo:
- linear: Exemplos de complexidade linear
O(n)
.- Arquivo:
linear.go
- Documentação: README
- Arquivo:
- polinomial: Exemplos de complexidade quadrática
O(n²)
e cúbicaO(n³)
.- Arquivos:
quadratico.go
,cubico.go
- Documentação: README
- Arquivos:
- logaritmo: Exemplos de complexidade logarítmica
O(log n)
.- Arquivo:
logaritmo.go
- Documentação: README
- Arquivo:
- constante: Exemplos de complexidade constante
- Documentação geral: README
- Certifique-se de ter o Go instalado em sua máquina. Instale o Go se necessário.
- Clone este repositório:
git clone https://github.com/seu-usuario/AlGo.git cd AlGo
- Navegue até a pasta desejada e execute os arquivos
.go
:go run nome_do_arquivo.go
Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests com melhorias, correções ou novos exemplos.