Este repositório disponibiliza alguns algoritmos e estruturas de dados clássicos em Ciência da Computação. Além disso, disponibiliza também alguns problemas extras que são encontrados com frequência em desafios de programação.
Com o objetivo de alcançar uma abrangência maior e encorajar novas pessoas a contribuir com o projeto, os algoritmos são disponibilizados nas seguintes linguagens: C/C++, Java, Python, Go, Ruby, Javascript, Pascal, Swift e Rust.
| Algoritmos | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
|---|---|---|---|---|---|---|---|---|---|
| Algoritmo Dijkstra | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Algoritmo Floyd Warshall | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Busca Binária | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Busca em Grafos | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Busca Sequencial | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Busca Sequencial Recursiva | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Busca utilizando Sentinela | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Busca por Interpolação | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Caixeiro Viajante | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Ciclo Hamiltoniano | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Componentes Conexos | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Exponenciação | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Exponenciação Recursiva | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Fatorial | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Fatorial Recursiva | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Fibonacci | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Máximo Recursivo | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Mín. e Máx. Iterativo | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Mín. e Máx. Recursivo | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Mín. e Máx. D&C | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Passeio do Cavalo | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Torre de Hanói | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Algoritmo Genético | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Estruturas de Dados | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
|---|---|---|---|---|---|---|---|---|---|
| Árvore Binária | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Árvore Binária de Busca | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Deque | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Fila | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Fila Encadeada Dinâmica | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Grafo | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Lista Circular Ligada | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Lista Encadeada | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Lista Duplamente Encadeada | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Lista Ligada Não Ordenada | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Lista Sequencial Ordenada | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Pilha | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Pilha Ligada Dinâmica | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Algoritmos de Ordenação | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
|---|---|---|---|---|---|---|---|---|---|
| Bogo Sort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Bubble Sort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Bucket Sort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Cocktail Sort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Comb Sort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Counting Sort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Gnome Sort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Heapsort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Insertion Sort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Merge Sort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Quicksort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Radix Sort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Selection Sort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Shell Sort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Timsort | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Extras | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
|---|---|---|---|---|---|---|---|---|---|
| Lista com 2 Pilhas | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Soma de 2 Números | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Palíndromo | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Lista Ligada Desordenada | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Calculo do PI (Leibniz) | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
| Busca em Labirinto | C/C++ | Java | Python | Go | Ruby | JS | Pascal | Swift | Rust |
- C++: cpp.sh
- Go: play.golang.org
- Swift: online.swiftplayground.run
- Rust: play.rust-lang.org
- Generic: code.sololearn.com
Fique à vontade para contribuir com o projeto, toda contribuição é bem vinda. 😁
Se você tem dúvida de como contribuir, dê uma olhada no arquivo CONTRIBUTING.