Os algoritmos - c#
Todos os algoritmos implementados em C# - para fins de educação
O repositório é uma coleção de uma variedade de algoritmos implementados em C#. Os algoritmos abrangem uma variedade de tópicos da ciência da computação, matemática e estatística, ciência de dados, aprendizado de máquina, engenharia etc. As implementações e suas documentações associadas devem fornecer um recurso de aprendizado para educadores e alunos. Portanto, pode -se encontrar mais de uma implementação para o mesmo objetivo, mas usando diferentes estratégias e otimizações de algoritmo.
Lista de algoritmos
Algoritmos
- Cripto
- Papdings
- ISO 10125-2 preenchimento
- ISO 7816-4 preenchimento
- X9.32 Padding
- Tbc preenchimento
- PKCS7 preenchimento
- Digestas
- ASCON HASH DIGEST
- MD2 Digest
- Compressão de dados
- Transformagem de rodas das tocas
- Compressor de Huffman
- Compressor Shannon-Fano
- Codificadores
- César
- Vigenere
- Colina
- NYSIIS
- SoundEx
- Feistel
- Blowfish
- Gráfico
- Árvore de abrangência mínima
- Algoritmo de Prim (matriz de adjacência)
- Algoritmo de Kruskal
- Larguthfirsttreetraversal
- BrenddfirstSearch
- DepthfirstSearch
- Dijkstra mais curto caminho
- Floydwarshall
- Kosaraju
- Problema da mochila
- Solucionador ingênuo
- Solucionador de programação dinâmica
- Ramificação e solucionador ligado
- Iheuristicknapsacksolver
- Álgebra linear
- Distâncias
- Chebyshev
- Euclidiano
- Manhattan
- Minkowski
- Autovalor
- Aritmética modular
- Teorema do restante chinês
- Algoritmo euclidiano estendido
- Inverso multiplicativo modular
- Numérico
- Absoluto
- Adição sem aritmética
- Calculadora de soma de alíquota
- Verificador de números amigáveis
- CEIL
- Decomposição
- Decomposição de Lu
- Decomposição vetorial singular fina
- Chão
- Maior divisor comum
- GCD euclidiano
- GCD binário
- Fatoração
- Fator da divisão de estudo
- Exponeção modular
- Série
- Eliminação de Gauss-Jordan
- BinomialCoeficiente
- Fatorial
- Verificador de número Keith
- Pseudo-Inverso
- Verificador de números narcisistas
- Verificador de cubo perfeito
- Verificador de número perfeito
- Verificador quadrado perfeito
- Método Euler
- Método clássico de Runge-Kutta
- Miller-Rabin Primalidade Verificação
- KrishnamurthynumberChecker
- Número Automófico
- Problema de Josephus
- Cálculo da raiz quadrada de Newton
- Função softmax
- Recomendoresystem
- Pesquisas
- A-Star
- Pesquisa binária
- Pesquisa de Boyermoore
- Pesquisa rápida
- Pesquisa de Fibonacci
- Pesquisa de interpolação
- Pesquisa de salto
- Pesquisa linear
- Pesquisa binária recursiva
- Classifica
- Comparação
- Classificação de inserção binária
- BOGO Classificação
- Tipo de bolha
- Tipo de coquetel
- Tipo de pente
- Ciclo
- Troca de classificação
- Classificação da pilha
- Classificação de inserção
- Mesclar classificar
- Tipo de panqueca
- Classificação rápida
- Mediana de três pivô
- Pivô do ponto médio
- Pivô aleatório
- Classificação de seleção
- Classificação da concha
- Tim Sort
- Tim simplificado
- Externo
- Inteiro
- Contagem de classificação
- Corrente do balde
- Radix Sort
- Corda
- Shufflers
- Sequências
- A000002 Kolakoski
- A000004 zero
- A000005 contagem de divisores
- A000008 Faça alteração
- A000010 TOLER DOURER
- A000012 todos
- A000027 Natural
- A000032 Números Lucas
- A000040 PRIMES
- A000045 Fibonacci
- A000079 PODERS DE 2
- A000108 Catalão
- A000120 contagem de 1
- A000124 números poligonais centrais
- Números de bolo A000125
- A000142 Fatorial
- A000213 Números Tribonacci
- A000215 Números Fermat
- A000288 números tetranacci
- Quadrados A000290
- A000292 Números tetraédricos
- A000578 cubos
- A000720 Primepi
- A001146 Número de funções booleanas
- A001462 Golomb
- A001478 Inteiros negativos
- A002110 Números primoriais
- A002717 Arranjo do Triângulo Matchstick
- A005132 Recaman's
- A006577 Número de etapas '3n+1' para atingir 1
- A006862 Números Euclides
- A006879 Número de primos por número de dígitos
- A006880 Número de primos por poderes de 10
- A007318 Binomial
- A007395 Todos os dois
- A010051 Binária Prime Constant
- A010701 Todos os três
- A011557 PODERS DE 10
- A057588 Números Kummer
- A019434 Fermat Primes
- A181391 Van Eck's
- Pilha
- Próximo elemento maior
- Verificador de parênteses equilibrados
- Pilha reversa
- Corda
- Semelhança
- Similaridade de cosseno
- Distância de Damerau-Levenshtein
- Distância de Hamming
- Similaridade de jaro
- Distância de Jaro-Winkler
- Alinhamento ideal de cordas
- Correspondência de padrões
- MATERIAÇÃO DE PADRÃO BITOP
- Pesquisa ingênua de string
- Rabin Karp
- Boyer Moore
- Pesquisa Knuth -Morris - Pratt
- Matriz de padrões curinga
- Pesquisa de substring de bloco Z.
- Caráter consecutivo mais longo
- Verificador de palíndroma
- Obtenha todas as permutações de uma corda
- Outro
- Fermat Prime Checker
- Peneira de eratóstenos
- Luhn
- Int2binary
- Geolocation
- Mandelbrot
- Koch Snowflake
- Conversão RGB-HSV
- Preenchimento de inundação
- Otimização de Pareto
- Otimização de Gauss
- Decisões convoluções
- A variação de Welford
- Julian Páscoa
- Rho de Pollard
- Hash de geolocalização
- Geofencing
- Algoritmo de triangulação
- Problemas
- Casamento estável
- Gale-shapley
- Acepto
- Propositor
- N-Queens
- Programação dinâmica
- Mudança de moeda
- Distância de Levenshtein
Estruturas de dados
- Matriz de bits
- Linha do tempo
- Árvores de segmento
- Árvore do segmento
- Segmento de multiplicação de árvores
- Atualização da árvore do segmento
- Árvore de pesquisa binária
- Árvore do bode expiatório
- Árvore Fenwick (ou árvore indexada binária)
- Aa Tree
- Árvore AVL
- Árvore-vermelha-preta
- Pilha
- Pilha baseada em matriz
- Pilha baseada na lista
- Pilha baseada na fila
- Pilha
- Min-max Heap
- Heap binário
- Fibonacci Heap
- Emparelhando -se
- Probabilístico
- Bloomfilter
- Count-Min Sketch
- HyperlogLog
- Fila
- Fila baseada em matriz
- Fila baseada em lista
- Fila baseada em pilha
- Lista vinculada
- Lista individual
- Lista duplamente vinculada
- Pular lista
- Lista ligada circular
- Gráfico
- Gráfico ponderado direcionado por matriz adjacente
- Conjunto disjunto
- Lista classificada
- Índice invertido
- Lista vinculada sem controle
- Tenta
- Hashtable
- Cache
- Cache menos usado (LFU)
- Cache menos recentemente usado (LRU)
Atualização do projeto: .NET 8 Migração
Como parte de nosso esforço contínuo de permanecer atualizado com as mais recentes tecnologias, migramos nosso projeto para .NET 8. Essa atualização aprimora nosso projeto com os recursos e melhorias mais recentes do ecossistema .NET.
Novos requisitos
- Para construir e executar este projeto, agora é necessário .NET 8 SDK .
- Verifique se suas ferramentas de desenvolvimento são compatíveis com .NET 8.
Construindo o projeto
- Com o .NET 8 SDK instalado, você pode criar o projeto usando o comando
dotnet build padrão. - Todos os scripts de construção existentes foram atualizados para acomodar o .NET 8 SDK.
Testes de execução
- Nosso conjunto abrangente de testes de unidade garante a compatibilidade com o .NET 8.
- Execute os testes usando o comando
dotnet test COMMATE COMO COMPLEMA.
Contribuindo
Você pode contribuir com prazer para este repositório. Oriente a estrutura do diretório e o estilo de código geral deste repositório e consulte nossas diretrizes contribuintes para obter mais detalhes. Se você quiser fazer uma pergunta ou sugerir algo, abra um problema.