/algorithms

Famous algorithms done with Javascript

Primary LanguageJavaScript

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.