Skip to content

franciscosantos1914/algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Algoritmos 🚀🚀


Este repositório contém implementações de uma variedade de algoritmos clássicos e comuns. Cada algoritmo é acompanhado de uma breve descrição e exemplos de uso, quando aplicável.

Algoritmos de Grafos 🔥


  • Prim's Algorithm: Um algoritmo de árvore de expansão mínima que encontra o subconjunto de arestas que forma uma árvore que inclui todos os vértices, onde o peso total da árvore é minimizado.

  • Kruskal's Algorithm: Um algoritmo de árvore de expansão mínima que encontra um subconjunto mínimo de arestas que conecta todos os vértices de um grafo ponderado.

  • Dijkstra's Algorithm: Um algoritmo para encontrar os caminhos mais curtos entre os nós em um grafo ponderado, que pode representar, por exemplo, distâncias rodoviárias entre cidades.

  • Bellman-Ford Algorithm: Um algoritmo de caminho mais curto que encontra o caminho mais curto em um grafo ponderado com arestas de peso negativo.

Algoritmos de Busca 🔥


  • A Algorithm*: Um algoritmo de busca heurística que encontra o caminho mais curto entre um nó de origem e um nó de destino.

  • Binary Search Algorithm: Um algoritmo eficiente para encontrar o valor desejado em uma lista ordenada.

  • Linear Search Algorithm: Um algoritmo simples para encontrar um valor em uma lista, percorrendo-a sequencialmente.

Algoritmos de Ordenação 🔥


  • Tree Sort Algorithm: Um algoritmo de ordenação que constrói uma árvore binária de busca a partir dos elementos a serem classificados.

  • Tim Sort Algorithm: Um algoritmo de ordenação híbrido derivado do merge sort e insertion sort, utilizado como algoritmo padrão de ordenação em Python.

  • Shell Sort Algorithm: Um algoritmo de ordenação eficiente, uma generalização do insertion sort que permite a troca de itens distantes.

  • Radix Sort Algorithm: Um algoritmo de ordenação não comparativo que classifica inteiros processando dígitos individuais.

  • Cube Sort Algorithm: Um algoritmo de ordenação que divide a lista em cubos e depois ordena os cubos.

  • Counting Sort Algorithm: Um algoritmo de ordenação eficiente, especialmente útil quando a faixa de valores a serem classificados é relativamente pequena.

  • Bucket Sort Algorithm: Um algoritmo de ordenação que funciona distribuindo os elementos de entrada em um número finito de "buckets" e depois ordenando cada bucket individualmente.

  • Heap Sort Algorithm: Um algoritmo de ordenação baseado em estrutura de dados heap.

  • Selection Sort Algorithm: Um algoritmo de ordenação simples que encontra o menor elemento da lista e o coloca na posição correta.

  • Insertion Sort Algorithm: Um algoritmo de ordenação eficiente que constrói a lista ordenada um elemento de cada vez.

  • Bubble Sort Algorithm: Um algoritmo de ordenação simples que compara cada par de elementos adjacentes e os troca se estiverem na ordem errada.

  • Quick Sort Algorithm: Um algoritmo de ordenação eficiente e flexível que utiliza a estratégia de divisão e conquista.

  • Merge Sort Algorithm: Um algoritmo de ordenação que divide a lista em sublistas, ordena essas sublistas e depois as mescla.

Algoritmos de Problemas Específicos 🔥


  • N-Queen Problem Algorithm: Um algoritmo que resolve o problema de colocar N rainhas em um tabuleiro de xadrez de tal forma que nenhuma rainha possa atacar outra.

  • Maze Solving Problem Algorithm: Um algoritmo que encontra um caminho ou solução para um labirinto.

Algoritmos de Cache 🔥


  • MRU Cache Algorithm: Um algoritmo de substituição de cache que remove do cache o elemento que foi acessado mais recentemente.

  • LFU Cache Algorithm: Um algoritmo de substituição de cache que remove do cache o elemento menos frequentemente usado.

  • LRU Cache Algorithm: Um algoritmo de substituição de cache que remove do cache o elemento que foi menos recentemente usado.

Outros Algoritmos 🔥


  • Knight Tour Algorithm: Um algoritmo que resolve o problema do passeio do cavalo, que consiste em encontrar um caminho para o cavalo passar por todas as casas de um tabuleiro de xadrez exatamente uma vez.

  • Hamiltonian Path Algorithm: Um algoritmo que resolve o problema de encontrar um caminho que visite cada vértice de um grafo exatamente uma vez.

  • Ford Fulkerson Algorithm: Um algoritmo para encontrar o fluxo máximo em uma rede de fluxo.

Algoritmos de Codificação 🔥


  • Huffman Algorithm: Um algoritmo de compressão de dados que utiliza códigos de tamanho variável para representar os símbolos na fonte de dados.

  • CRC32 Algorithm: Um algoritmo de verificação de redundância cíclica (CRC) que produz um valor de verificação de 32 bits para dados de entrada.