Skip to content

Latest commit

 

History

History
90 lines (74 loc) · 3.76 KB

README.md

File metadata and controls

90 lines (74 loc) · 3.76 KB

AlGo

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.

Estrutura do Projeto

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:

1. RECURSION

  • 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

2. PROBLEM_SOLVING

  • 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

3. LINEAR_DATA_STRUCTURES

  • Descrição: Implementações de estruturas de dados lineares.
  • Subpastas:
    • STACK: Implementação de pilhas (LIFO).
      • Arquivos: stack.go, sliceStack.go
      • Documentação: README
    • QUEUE: Implementação de filas (FIFO) e filas circulares.
      • Arquivos: queue.go, linkedQueue.go, circularQueue.go
      • Documentação: README
    • SET: Implementação de conjuntos com operações de união e interseção.
      • Arquivo: sets.go
      • Documentação: README
    • SINGLE_LINKED_LIST: Implementação de listas encadeadas simples.
      • Arquivo: linkedlist.go
      • Documentação: README
    • DOUBLY_LINKED_LIST: Implementação de listas duplamente encadeadas.
      • Arquivo: doubly.go
      • Documentação: README

4. BIG O NOTATION

  • 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
    • linear: Exemplos de complexidade linear O(n).
      • Arquivo: linear.go
      • Documentação: README
    • polinomial: Exemplos de complexidade quadrática O(n²) e cúbica O(n³).
      • Arquivos: quadratico.go, cubico.go
      • Documentação: README
    • logaritmo: Exemplos de complexidade logarítmica O(log n).
      • Arquivo: logaritmo.go
      • Documentação: README
  • Documentação geral: README

Como Executar

  1. Certifique-se de ter o Go instalado em sua máquina. Instale o Go se necessário.
  2. Clone este repositório:
    git clone https://github.com/seu-usuario/AlGo.git
    cd AlGo
  3. Navegue até a pasta desejada e execute os arquivos .go:
    go run nome_do_arquivo.go

Contribuições

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues ou enviar pull requests com melhorias, correções ou novos exemplos.