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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.