Alguns pedaços de código em linguagens variadas que eu costumo usar nos estudos.
Calcula equações de segundo grau, evitando divisão por zero e equações de primeiro grau.
Encontra o enésimo valor da sequência de Fibonacci por função recursiva e mostra quantas chamadas foram feitas à função. Feito enquanto tentava entender Haskell.
Uma função em C++17 que retorna da forma mais rápida a quantidade de divisores de um número inteiro, baseada no algoritmo do site geeksforgeeks, pra resolver um problema do projeto Euler.
Mais um programa de primos, retorna verdadeiro se o número informado for primo. Criado pra resolver um problema do Uri Online Judge.
Depois de passar um tempo euclidiano tentando entender o método recursivo de achar o número de combinações possíveis de elementos pra obter um resultado, eu simplesmente desistí e decidi adaptar uma solução dinâmica do java pro python. Muito usado em problemas de combinações de troco.
O algoritmo de Kruskal busca uma árvore de extensão mínima pra um grafo com pesos definindos, ele é útil pra encontrar o menor número de conexões necessário pra ligar todos os vértices de um grafo. Baseado fortemente no trabalho do Xianshun Chen.
O algoritmo de Heap é usado pra gerar todas as permutações de uma sequência n de objetos, ou seja, todas as combinações possíveis dos elementos de uma lista, sem repetição. Eu encontrei esse algoritmo no geeksforgeeks e decidí adaptá-lo pra Lua, linguagem complicada que me enche de ódio e orgulho.
Um grafo não dirigido é aquele onde se há caminho de a até b também há caminho de b até a.
Esse algoritmo que eu mais uma vez copiei do geeksforgeeks serve pra encontrar todos os componentes conexos de um grafo G(V,A) e imprimi-los no console em ordem crescente.
Mais um grid que um grafo, mas mesmo assim, esse algoritmo encontra o menor caminho em um grid, sainda da topo-esquerda, até o fim-direita do grid.
Assim como tudo que eu já fiz, ele é copiado de programadores mais competentes, deste post do Nil Madhab, pra ser mais preciso, eu só adaptei a solução pra Python. A resolução é encontrada em O(n*m), o tamanho de nLinhas*nColunas.
Algoritmo de Pesquisa Binária em C++, feito do modo recursivo, retorna a posição de um elemento x em um array ordenado, ou -1 se o elemento não estiver presente. Eu fiz uma interação com o console, pra pedir os elementos do array e o número buscado pro usuário, mas a parte mais importante é a função de busca. Original em geeksforgeeks.
Algoritmo de ordenação de array pelo método merge-sort, copiado descaradamente do meu professor, Alecio Godói, ele combina programação recursiva com iterativa pra ordenar o array de forma rápida.
Mais uma idéia copiada descaradamente do meu professor, Alecio Godói, ninguém mandou ser professor no Brasil. Estrutura de árvore binária, que adiciona strings e a quantidade de vezes que elas se repetiram em uma estrutura de nós, de acordo com o valor alfabético de cada elemento, também é capaz de buscar, editar, excluir e imprimir esses valores de forma ordenada sem precisar de um algoritmo de sort.
Classe personalizada do java, que funciona como uma fila, que armazena valores e retorna o primeiro item quando chamada, funciona de forma circular, então não vai usar muita memória.
Classe personalizada do java, que funciona como uma pilha, que armazena valores e retorna o último item quando chamada, pode ser invertida, medida ou impressa, também funciona de forma circular pra melhorar a performance.
Pega pelo menos duas informações que você tenha (Capacidade da memória/Capacidade das células/Tamanho do endereço/Número de células) e calcula as outras.
Solução menos eficiente que as normalmente encontradas na internet, eu tentei fazer com que o programa resolvesse o problema do jeito que um humano resolveria, ou seja, ineficientemente.