Um projeto educativo abrangente para aprender e compreender diferentes algoritmos de ordenação através de implementações prÔticas em C++ e documentação visual.
Este projeto foi desenvolvido para ajudar estudantes e desenvolvedores a entenderem os fundamentos dos algoritmos de ordenação. Combina implementações prÔticas em C++ com documentação educativa detalhada para proporcionar uma experiência completa de aprendizado.
O projeto inclui:
- Implementações em C++ de vÔrios algoritmos de ordenação
- Documentação visual explicando como cada algoritmo funciona
- ExplicaƧƵes passo a passo com diagramas e exemplos
- Materiais de aprendizado interativos construĆdos com Writerside
- Compilador C++ (suportando C++14 ou posterior)
- CMake (versão 3.30 ou posterior)
- Git (para clonar o repositório)
Linux (Ubuntu/Debian)
-
Atualize os repositórios:
sudo apt update
-
Instale o compilador GCC/G++:
sudo apt install build-essential
-
Verifique a instalação:
gcc --version g++ --version
sudo apt install cmake
sudo apt install git
Red Hat/Fedora/CentOS:
sudo dnf install gcc gcc-c++ make cmake git
# ou para versƵes mais antigas:
sudo yum install gcc gcc-c++ make cmake git
Arch Linux:
sudo pacman -S gcc make cmake git
Windows
-
Baixe o MSYS2:
- Acesse https://www.msys2.org/
- Baixe e execute o instalador
-
Instale o MinGW-w64:
pacman -S mingw-w64-ucrt-x86_64-gcc pacman -S mingw-w64-ucrt-x86_64-cmake pacman -S git
-
Adicione ao PATH:
- Adicione
C:\msys64\ucrt64\bin
às variÔveis de ambiente - Reinicie o terminal
- Adicione
-
Verifique a instalação:
gcc --version g++ --version cmake --version
-
Baixe o Visual Studio Community:
- Acesse https://visualstudio.microsoft.com/vs/community/
- Baixe e execute o instalador
-
Selecione os componentes:
- ā Desktop development with C++
- ā CMake tools for Visual Studio
- ā Git for Windows
-
Configure o ambiente:
- Use o "Developer Command Prompt" ou "Developer PowerShell"
- Compilador:
cl.exe
-
Baixe o Code::Blocks:
- Acesse http://www.codeblocks.org/downloads
- Escolha a versĆ£o com MinGW incluĆdo
-
Instale normalmente:
- Siga o assistente de instalação
- O compilador MinGW jĆ” vem incluso
Opção A - Git for Windows:
- Baixe em https://git-scm.com/download/win
- Execute o instalador com configurações padrão
Opção B - Através do Chocolatey:
# Instale o Chocolatey primeiro, depois:
choco install git
Testando a Instalação
-
Crie um arquivo de teste:
// teste.cpp #include <iostream> using namespace std; int main() { cout << "Compilador C++ funcionando!" << endl; return 0; }
-
Compile e execute:
# Linux/macOS/Windows (MinGW) g++ -o teste teste.cpp ./teste # Windows (cmd) g++ -o teste.exe teste.cpp teste.exe
-
SaĆda esperada:
Compilador C++ funcionando!
-
Crie um CMakeLists.txt simples:
cmake_minimum_required(VERSION 3.10) project(TesteCompilador) set(CMAKE_CXX_STANDARD 14) add_executable(teste teste.cpp)
-
Compile com CMake:
mkdir build cd build cmake .. make # ou no Windows com Visual Studio: # cmake --build .
-
Clone o repositório:
git clone <url-do-repositorio> cd learn-sorting-algorithms
-
Compile o projeto:
mkdir build cd build cmake .. make
-
Execute os algoritmos:
# Para Bubble Sort ./Domus/Domus-1/bubbleSort # Para Selection Sort ./Domus/Domus-1/selectionSort
- Localização:
Domus/Domus-1/bubbleSort.cpp
- Complexidade de Tempo: O(n²)
- Complexidade de EspaƧo: O(1)
- Descrição: Compara elementos adjacentes e os troca se estiverem na ordem errada
- Localização:
Domus/Domus-1/selectionSort.cpp
- Complexidade de Tempo: O(n²)
- Complexidade de EspaƧo: O(1)
- Descrição: Encontra o elemento mĆnimo e o coloca no inĆcio da lista
O projeto inclui documentação abrangente construĆda com JetBrains Writerside:
- Tutoriais interativos explicando conceitos de algoritmos de ordenação
- Diagramas visuais mostrando a execução passo a passo dos algoritmos
- Exemplos de código com explicações detalhadas
- Suporte completo em portuguĆŖs para conteĆŗdo educacional
- Documentação Local: Abra
docs/index.html
no seu navegador - Arquivos Fonte: Verifique
Writerside/topics/
para documentação em markdown
- Visualização passo a passo dos algoritmos
- Diagramas comparativos mostrando a troca de elementos
- Detalhamento iteração por iteração
Cada implementação de algoritmo inclui:
- Nomenclatura clara de variƔveis
- ComentƔrios detalhados
- Funções separadas para operações principais (troca, exibição, ordenação)
- Dados de teste com demonstração da saĆda
- Entenda a teoria através da documentação
- Estude as implementações do código
- Execute os programas para ver os resultados
- Experimente com diferentes dados de entrada
Contribuições são bem-vindas! Veja como você pode ajudar:
- Adicionar novos algoritmos (Quick Sort, Merge Sort, Heap Sort, etc.)
- Melhorar a documentação com mais exemplos e explicações
- Adicionar casos de teste para melhor validação
- Traduzir conteĆŗdo para outros idiomas
- Corrigir bugs ou melhorar a qualidade do código
- Faça um fork do repositório
- Crie uma branch para sua feature (
git checkout -b feature/novo-algoritmo
) - Commit suas mudanƧas (
git commit -am 'Adiciona novo algoritmo de ordenação'
) - Push para a branch (
git push origin feature/novo-algoritmo
) - Crie um Pull Request
Este projeto estƔ licenciado sob a LicenƧa MIT - veja o arquivo LICENSE para detalhes.
- Estruturas de Dados
- AnƔlise de Complexidade de Algoritmos
- Otimização de Performance
- Estudos Comparativos de Algoritmos
Se vocĆŖ tiver dĆŗvidas ou precisar de ajuda:
- Crie uma issue no repositório
- Consulte a documentação na pasta
docs/
- Revise os exemplos em
Writerside/topics/
Bom Aprendizado! Comece com o bƔsico e vƔ evoluindo para algoritmos mais complexos.