Giter VIP home page Giter VIP logo

projetoanalisealgoritmos's Introduction

ProjetoAnaliseAlgoritmos

Atividades da disciplina PCC104 - Projeto e Análise de Algoritmos

Este repositório contém os exercícios referentes a disciplina PCC104 - Projeto e Análise de Algoritmos com os códigos comentados.

Acesse o repositório do professor aqui

Livro Didático : Levitin, Anany. Introduction to the design & analysis of algorithms. 3rd ed. Pearson, 2012.

Sumário

Busca exaustiva, Diminuir para conquistar e Dividir para conquistar

  • ProjetoAnaliseAlgoritmos.cpp - contém a implementação principal, com a função main de cada algoritmo professor.
  • Utils.cpp - contém os utilitários da implementação principal professor.
  • BruteForce.cpp - contém os algoritmos de força bruta: Selection Sort e Bubble Sort professor.
  • Students.cpp - contém o algoritmo de força bruta generalizado professor.
  • GraphSearch.cpp - contém os algoritmos de força bruta para grafos: Busca em profundidade (dfs) e Busca em largura (bfs) professor.
  • PermSetGenerators.cpp - contém os algoritmos de permutação: permutação à partir do busca em profundidade, permutação de binários, permutação e Binary Reflected Gray Code professor.
  • ConvexHull.cpp - contém o algoritmo Convex Hull professor.
  • TopologicalSorting.cpp - contém o algoritmo de Ordenação Topológica professor.
  • BinarySearchTree.cpp - contém o algoritmo de Binary Search Tree professor.
  • JohnsonTrotter.cpp - contém o algoritmo de Johnson Trotter daher13.
  • InsertionSort.cpp - contém o algoritmo de Insertion Sort, proposto no livro didático (p.134) nataliameira.
  • CommonElements.cpp - contém o algoritmo que encontra todos os elementos comuns em duas listas, proposto no livro didático (p.8) nataliameira.
  • EuclideanAlgorithmGCD.cpp - calcula o *Máximo Divisor Comum de m e n, gcd(m,n) pelo algoritmo de Euclides, proposto no livro didático (p.4) nataliameira.
  • Dmin.cpp - encontra a Distância entre os dois elementos mais próximos em um array de números, proposto no livro didático (p.18) nataliameira.
  • Fatorial.cpp - encontra o Fatorial de um número n recursivamente, proposto no livro didático (p.70) nataliameira.
  • Fibonacci.cpp - encontra recursivamente o enésimo numero da sequencia de Fibonacci, proposto no livro didático (p.81) nataliameira.
  • SequentialSearch2.cpp - implementa a pesquisa sequencial com uma chave de pesquisa como um sentinela, algoritmo Sequential Search 2, proposto no livro didático (p.104) nataliameira.
  • BruteForceStringMatch.cpp - implementa correspondência de string de força bruta, algoritmo Brute Force String Match, proposto no livro didático (p.105) nataliameira.
  • ClosestPairProblem.cpp - encontra a distância entre dois pontos mais próximos no plano por força bruta, algoritmo Brute Force Closest Pair, proposto no livro didático (p.109) nataliameira.
  • BinarySearch.cpp - implementa uma busca binária não-recursiva, algoritmo Binary Search, proposto no livro didático (p.151) nataliameira.
  • MatrixMultiplication.cpp - multiplica duas matrizes quadradas de ordem n, algoritmo Matrix Multiplication, proposto no livro didático (p.64), baseado em daher13.
  • MergeSort.cpp - classifica a matriz A [0..n - 1] por mesclagem recursiva, algoritmo Merge Sort, proposto no livro didático (p.172) nataliameira.
  • Soma.cpp - soma todos os elementos de um vetor v [0..n - 1] pelos métodos busca exaustiva, diminuir para conquistar e dividir para conquistar nataliameira.
  • MaiorMenor.cpp - encontra o maior e menor valor em um vetor v [0..n - 1] pelo método busca exaustiva e o menor valor pelo método dividir para conquistar nataliameira.
  • MinMax.cpp - encontra o maior e menor valor em um vetor v [0..n - 1] pelos métodos busca exaustiva, diminuir para conquistar e dividir para conquistar professor.
  • Mean.cpp - encontra a média dos valores em um vetor v [0..n - 1] pelos métodos busca exaustiva, diminuir para conquistar e dividir para conquistar professor.

Programação Dinâmica, Algoritmos Gulosos, Backtracking e Branch and Bound

  • Fibonacci_ProgDin.cpp - encontra o enésimo numero da sequencia de Fibonacci pelo conceito de programação dinâmica professor.
  • SpanningTree.cpp - resolve o algoritmo de Prim pelo conceito de algoritmo guloso e spanning tree problem, proposto no livro didático (p.318) professor.
  • Elements.cpp - completa o algoritmo de Prim.
  • CoinRow.cpp - coleta a quantidade máxima de dinheiro dada uma fila de moedas seguindo as restrições do algoritmo Coin-row problem, pelo conceito de programação dinâmica, proposto no livro didático (p.285) professor.
  • ChangeMaking.cpp - fornece o troco para o valor n usando um número mínimo de moedas de denominações d1<d2<...<dm , do algoritmo Change Making Problem, pelo conceito de programação dinâmica, proposto no livro didático (p.287) professor.
  • Knapsack.cpp - resolve o problema da mochila pelo conceito de programação dinâmica, proposto no livro didático (p.295) professor.
  • Backtracking.cpp - implementa os problemas n-queens problem e sudoku, pelo conceito de backtracking, proposto no livro didático (p.423) professor.
  • BranchAndBound.cpp - implementa o problema do Caixeiro Viajante, pelo conceito de branch and bouond , proposto no livro didático (p.423) professor.
  • HamiltonianCircuit.cpp - implementa o problema Hamiltonian Circuit Problem, pelo conceito de backtracking, proposto no livro didático (p.454) nataliameira.
  • SubsetSum.cpp - encontra os subconjuntos de um determinado conjunto A = {a1,. . . , an} de n inteiros positivos cuja soma é igual a um determinado inteiro positivo d, pelo conceito de backtracking , baseado no proposto no livro didático (p.427) nataliameira.
  • N_Torres.cpp - resolve o problemas das n torres , pelo conceito de backtracking nataliameira.
  • Constraint_Satisfaction.cpp - dado um conjunto domínio, encontra os subconjuntos de variáveis que satisfazem um conjuntp de restrições, pelo conceito de backtracking nataliameira.

Listas de Exercícios

projetoanalisealgoritmos's People

Contributors

nataliameira avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.