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
  • 2°Sem 2025

Sumário:

Links úteis:

🐍 Python:
🐢 Python Tutor:
🖥️ Programiz:
📈 Big-O Cheat Sheet:
🧠 Algorithm Visualizer:
🧰 IDE recomendada:
📚 Livros recomendados:
⏱️ Medição de tempo de execução em diversas linguagens:
🎵 Sound of Sorting - SoS:
🚀 PyGMO:
🎮 PyGame:
📖 Leituras e vídeos sugeridos:
🧩 Sudoku:
🐴 Knight's tour Problem:
🧮 Subset Sum Problem:
👑 N Queens Problem:
🎒 Knapsack Problem:
🧳 Traveling Salesman Problem:
🌊 Flood Fill:
⭐ A* Algorithm:
🧮 Algorithm Complexity and Visualizations:

🎥 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

🧩 Sudoku com algoritmo de retrocesso (Sudoku Backtracking):

Um Sudoku Autosolver gamificado em Python com Interface Gráfica, Pygame e Algoritmo de Backtracking; e um Sudoku Solver com IA, Deep Learning e OpenCV:

⬇️ Abaixo, outras duas possíveis soluções do Geeks for Geeks com complexidades O(n*9^(n*n)) e O(9^(n*n)):


🛕 Torres de Hanói - com 4 discos:

hanoi_4
Tower of Hanoi with 4 disks

pucminas