Coder Social home page Coder Social logo

snippets's Introduction

snippets

Alguns pedaços de código em linguagens variadas que eu costumo usar nos estudos.

Diferente

Matemática

Cálculo de equações de segundo grau

Calcula equações de segundo grau, evitando divisão por zero e equações de primeiro grau.

Fibonacci e quantas chamadas

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.

número de Divisores

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.

Primo Rápido

Mais um programa de primos, retorna verdadeiro se o número informado for primo. Criado pra resolver um problema do Uri Online Judge.

número de combinações possíveis pra um resultado

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.

Grafos

Algoritmo de Kruskal

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.

Algoritmo de Heap

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.

Componentes conectados em um grafo não dirigido

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.

Menor caminho em um grid, → ↓

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.

Otimização

Pesquisa Binária

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.

mergeSort

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.

Estrutura de dados

Árvore Binária

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.

Fila Circular (FIFO)

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.

Pilha (LIFO)

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.

Utilidades

Calculadora de Capacidade de Memória RAM

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.

Conversor Binário - Decimal - Hexadecimal

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.

snippets's People

Contributors

sleiph avatar

Stargazers

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