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.