Visualizações de algoritmos do mundo real
Visão geral
Esse repositório contém visualizações de vários algoritmos complexos que eu criei como parte da minha classe de algoritmos do mundo real, usando a API do Bridges . Os visualizadores demonstram como vários algoritmos funcionam na prática, fornecendo uma abordagem interativa e visual para entender seu comportamento e desempenho. Você pode explorar as visualizações no Bridges-CS.
Algoritmos cobertos
Ao longo do curso, implementei e visualizei os seguintes algoritmos:
1. Algoritmos de classificação
- Merge Classifica : um algoritmo de classificação de divisão e conquista com uma complexidade de tempo de O (n log n).
- Quicksort : Outro algoritmo de classificação eficiente que funciona particionando a matriz e classificando as partições recursivamente.
2. Representação de gráficos e travessias
- Pesquisa em largura (BFS) : explora todos os nós na profundidade atual antes de passar para os nós no próximo nível de profundidade.
- Pesquisa em profundidade (DFS) : explora o máximo possível ao longo de cada ramificação antes de voltar atrás.
- Aplicação : BFS implementado para calcular números de bacon e representação de gráficos explorada usando listas e matrizes de adjacência.
3. Algoritmos de gráfico
- O algoritmo de caminho mais curto de Dijkstra : encontra o caminho mais curto entre nós em um gráfico.
- Árvore mínima de abrangência da Prim (MST) : calcula a árvore de abrangência mínima de um gráfico.
- Projetos : Análise de caminho mais curta aplicada nos dados do OpenStreetMap e linhas centrais extraídas de estruturas tubulares usando MST.
4. Correspondência de cordas
- Algoritmo de Horspool : um algoritmo de correspondência de cordas eficiente usado em projetos de alinhamento de sequência de genes, permitindo o alinhamento global e local.
5. Pesquisa e indexação
- Pesquisa binária : um algoritmo de pesquisa de tempo logarítmico para encontrar elementos em uma matriz classificada.
- PageRank : implementou um algoritmo PageRank usando dados de ator/filme da Wikipedia para indexação e classificação páginas da Web.
- Árvores de busca espacial : estruturas de dados espaciais exploradas como quadtrees.
6. Outros algoritmos
- Problema de vendedor ambulante : Usou o MST da Prim para aproximar a turnê de vendedores ambulantes das cidades dos EUA.
- Problema de mochila : Técnicas de programação dinâmica aplicadas para resolver esse problema de otimização.
Projetos e visualizadores
Cada um dos algoritmos acima foi implementado e visualizado usando a API Bridges . Os visualizadores podem ser explorados pela plataforma Bridges-CS. Esses projetos demonstram a aplicação do mundo real de algoritmos complexos e fornecem uma compreensão intuitiva de sua execução.
Projetos:
- Visualizador de travessia BFS e DFS
- Dijkstra mais curto localizador de caminho
- Mesclar os visualizadores de classificação e trituradores rápidos
- Algoritmo PageRank nos dados da Wikipedia
- Visualizador de alinhamento de sequência de genes
Como correr
- Clone este repositório:
git clone https://github.com/sudo-amancodes/real-world-algorithms-visualizers.git
- Execute os arquivos do laboratório para laboratório específico:
Tecnologias usadas:
- Python: Iniciando a linguagem de programação para implementação de algoritmo.
- Java: Linguagem de programação principal para implementação de algoritmo.
- Bridges API: Usado para criar visualizações dos algoritmos.
Demonstração:


Captura de tela da interface Quadtree e Quadtree Search.