Skip to content

joaopauloaramuni/fundamentos-de-projeto-e-analise-de-algoritmos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


pucminas


Repo Fundamentos de Projeto e Análise de Algoritmos

Disciplina do curso de Engenharia de Software da PUC Minas

  • 1°Sem 2025

Sumário:

Python:

Python Tutor:

Programiz:

Big-O Cheat Sheet:

Algorithm Visualizer:

IDE recomendada:

Livros recomendados:

Links úteis:

Medição de tempo de execução em diversas linguanges:
Sound of Sorting - SoS:
PyGMO:
Leituras e vídeos sugeridos:

Medição de tempos de execução para 1 bilhão de iterações em loops aninhados - 31 Linguagens:

BenjDicken-1863977678690541570.mp4

Medição de tempos de execução para o Fibonacci - 14 Linguagens:

BenjDicken-1861811963434770665.mp4

15 algoritmos de ordenação em 6 minutos: (Habilite o som)

15_Sorting_Algorithms_in_6_Minutes.mp4

Visualizando a complexidade de algoritmos:

Algoritmos de busca:

min_complexity min_complexity
Cada algoritmo tenta encontrar o número 29 em um conjunto de 40 números ordenados do menor para o maior. Cada algoritmo tenta encontrar o número 83 em um conjunto de 100 números ordenados do menor para o maior.

Algoritmos de ordenação:

min_complexitysort
Merge Sort vs Bubble Sort

Caminho do cavalo (Knight's tour):

Tabuleiro 8x8:

Knights_Tour_8x8 Knights_Tour_8x8_2
O cavalo visita cada casa exatamente uma vez. Duas casas em uma direção (horizontal ou vertical) e uma casa em uma direção perpendicular. O problema do caminho do cavalo é um exemplo do problema do caminho hamiltoniano mais geral na teoria dos grafos.

Tabuleiro 5x5 e um exemplo de passeio em 8x8:

Knights_Tour_5x5 Knights_Tour_8x8_3
Como você começa em uma casa, você fará 24 movimentos [(n x n) - 1] em um tabuleiro 5×5. Um exemplo de passeio aberto de cavalo em um tabuleiro de xadrez 8x8.

Problema das Oito Rainhas (Eight Queens Puzzle):

Tabuleiro 8x8:

Eight_Queens_Puzzle Eight_Queens_Puzzle_Min_Conflict
Backtracking para resolver o Problema das Oito Rainhas. Solução de conflitos mínimos para 8 rainhas.

Caixeiro Viajante (Travelling Salesman Problem):

Uma possível solução para o Problema do Caixeiro Viajante (Travelling Salesman Problem) usando um Algoritmo Evolutivo do PyGMO, um pacote Parallel Global Multiobjective Optimizer para Python:

Travelling_Salesman_Problem Travelling_Salesman
Travelling Salesman Problem with PyGMO Travelling Salesman

Preenchimento por inundação (Flood-Fill Algorithm):

Uma possível solução para visualizar o Flood Fill usando Python e uma comparação de algoritmos Flood Fill com JavaScript:

Flood_Fill Flood_Fill_2
Com Python Com JavaScript

Torres de Hanói - com 4 discos:

hanoi_4
Tower of Hanoi with 4 disks

pucminas