Los algoritmos - C#
Todos los algoritmos implementados en C# - para fines educativos
El repositorio es una colección de una variedad de algoritmos implementados en C#. Los algoritmos abarcan una variedad de temas de informática, matemáticas y estadísticas, ciencias de datos, aprendizaje automático, ingeniería, etc. Las implementaciones y sus documentos asociados están destinados a proporcionar un recurso de aprendizaje para educadores y estudiantes. Por lo tanto, uno puede encontrar más de una implementación para el mismo objetivo pero utilizando diferentes estrategias y optimizaciones de algoritmos.
Lista de algoritmos
Algoritmos
- Cripto
- Colas
- ISO 10125-2 relleno
- ISO 7816-4 RELLO
- X9.32 relleno
- TBC relleno
- PKCS7 ROLDING
- Digeridos
- Ascon hash digest
- Resumen de MD2
- Compresión de datos
- Transformación de los trampas de madriguera
- Compresor de Huffman
- Compresor de shannon-fano
- Codificadores
- César
- Vigenero
- Colina
- Nysiis
- Soundex
- Feistel
- Pescado
- Gráfico
- Árbol mínimo
- Algoritmo de Prim (matriz de adyacencia)
- Algoritmo de Kruskal
- BreTthFirstreetRaversal
- Amplio
- Profundidad de investigación
- Dijkstra ruta más corta
- Floydwarshall
- Kosaraju
- Problema de mochila
- Solucionador ingenuo
- Solucionador de programación dinámica
- Rama y solucionador encuadernado
- Iheuristicknapsacksolver
- Álgebra lineal
- Distancias
- Chebyshev
- Euclidiano
- Manhattan
- Minkowski
- Valor propio
- Aritmética modular
- Teorema del resto chino
- Algoritmo euclidiano
- Inverso multiplicativo modular
- Numérico
- Absoluto
- Adición sin aritmética
- Calculadora de suma alícuota
- Verificador de números amigables
- Fortificar techo
- Descomposición
- LU Descomposición
- Descomposición vectorial singular delgada
- Piso
- El mayor divisor común
- GCD euclidiano
- Gcd binario
- Factorización
- Factorización de división de prueba
- Exponencia modular
- Serie
- Eliminación de Gauss-Jordan
- Coeficiente binomial
- Factorial
- Verificador de números de Keith
- Pseudo-inverso
- Comprobante de números narcisistas
- Verificador de cubos perfecto
- Verificador de números perfecto
- Verificador cuadrado perfecto
- Método de Euler
- Método clásico de Runge-Kutta
- Cheque de primalidad de Miller-rabin
- Krishnamurthynumberchecker
- Número automórfico
- Problema de Josefo
- Cálculo de raíz cuadrada de Newton
- Función softmax
- Sistema recomendable
- Búsquedas
- Estrella a
- Búsqueda binaria
- Búsqueda de Boyermoore
- Búsqueda rápida
- Búsqueda de fibonacci
- Búsqueda de interpolación
- Búsqueda de saltos
- Búsqueda lineal
- Búsqueda binaria recursiva
- Tipo
- Comparación
- Clasificación de inserción binaria
- Bogo sort
- Burbuja
- Clasificación de cóctel
- Ordenar
- Clasificación de ciclo
- Sort de intercambio
- Sort de montón
- Clasificación de inserción
- Fusionar
- Clasificación de panqueques
- Clasificación rápida
- Mediana de tres pivote
- Pivote de punto medio
- Pivote al azar
- Clasificación de selección
- Clasificar con cáscara
- Tim sort
- Simplificado Tim Sort
- Externo
- Entero
- Clasificación de contabilidad
- Clasificación de cubos
- Radix Sort
- Cadena
- Bartigadores
- Secuencias
- A000002 Kolakoski
- A000004 cero
- A000005 recuento de divisores
- A000008 HACER CAMBIO
- A000010 Euler's Totient
- A000012 Todos los
- A000027 Natural
- A000032 Números de Lucas
- A000040 primos
- A000045 Fibonacci
- A000079 poderes de 2
- A000108 catalán
- Contando A000120 1
- A000124 Números poligonales centrales
- A000125 Números de pastel
- A000142 Factorial
- A000213 Números de Tribonacci
- A000215 Números de Fermat
- A000288 Números de tetranacci
- Cuadrados a000290
- A000292 Números tetraédricos
- A000578 CUBOS
- A000720 Primepi
- A001146 Número de funciones booleanas
- A001462 Golomb's
- A001478 enteros negativos
- A002110 Números primoriales
- A002717 Matchstick Triangle Arreglo
- A005132 Recaman's
- A006577 Número de pasos '3n+1' para llegar a 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 los dos
- A010051 Binary Prime Constant
- A010701 Todos los tres
- A011557 poderes de 10
- A057588 Números de kummer
- A019434 Fermat Primes
- A181391 Van Eck's
- Pila
- Siguiente elemento mayor
- Verificador de paréntesis equilibrado
- Pila
- Cadena
- Semejanza
- Similitud de coseno
- Distancia de Damerau-Levenshtein
- Distancia de hamming
- Similitud JARO
- Distancia de Jaro-Winkler
- Alineación óptima de cadena
- Coincidencia de patrones
- Coincidencia de patrones de bitop
- Búsqueda ingenua de cadenas
- Karp de Rabin
- Boyer Moore
- Knuth -Morris -Pratt Search
- Mataje de comodín de comodín
- Búsqueda de subcadena de Z-Bloque
- Personaje consecutivo más largo
- Checker de palíndromo
- Obtenga todas las permutaciones de una cadena
- Otro
- Checker Fermat Prime
- Tamiz de Eratosthenes
- Luhn
- Int2binary
- Geolocalización
- Mandelbrot
- Copo de nieve de Koch
- Conversión de RGB-HSV
- Llenado de inundación
- Optimización de pareto
- Optimización de Gauss
- Decisiones convoluciones
- Varianza de Welford
- Pascua juliana
- Rho de Pollard
- Hash de geolocalización
- Geofencing
- Algoritmo de triangulación
- Problemas
- Matrimonio estable
- Shapley
- Accesco
- Proponente
- N-colmena
- Programación dinámica
- Cambio de monedas
- Distancia de levenshtein
Estructuras de datos
- Bits
- Línea de tiempo
- Árboles de segmento
- Árbol de segmento
- Multiplicación del árbol de segmento
- Actualización del árbol de segmentos
- Árbol de búsqueda binario
- Árbol chivo expiatorio
- Árbol Fenwick (o árbol indexado binario)
- AA Árbol
- Árbol AVL
- Árbol rojo-negro
- Pila
- Pila basada en una matriz
- Pila basada en listas
- Pila basada en la cola
- Montón
- Montón de min-max
- Montón binario
- Montón de fibonacci
- Montón de emparejamiento
- Probabilístico
- Bloomfilter
- Boceto
- Hiperloglog
- Cola
- Cola basada en una matriz
- Cola basada en listas
- Cola a base de pila
- Lista vinculada
- Lista vinculada individualmente
- Lista doblemente vinculada
- Lista de saltos
- Lista de enlace circular
- Gráfico
- Gráfico ponderado dirigido a través de la matriz de adyacencia
- Set de desargento
- Lista de mortificación
- Índice invertido
- Lista vinculada sin rollo
- Intentos
- Hashtable
- Cache
- Caché de uso menos frecuente (LFU)
- Mínimo caché usado recientemente (LRU)
Actualización del proyecto: Migración .NET 8
Como parte de nuestro esfuerzo continuo para mantenerse al día con las últimas tecnologías, hemos migrado nuestro proyecto a .NET 8. Esta actualización mejora nuestro proyecto con las últimas características y mejoras del ecosistema .NET.
Nuevos requisitos
- Para construir y ejecutar este proyecto, ahora se requiere .NET 8 SDK .
- Asegúrese de que sus herramientas de desarrollo sean compatibles con .NET 8.
Construyendo el proyecto
- Con el SDK .NET 8 instalado, puede construir el proyecto utilizando el comando estándar
dotnet build . - Todos los scripts de compilación existentes se han actualizado para acomodar el SDK .NET 8.
Pruebas de ejecución
- Nuestro conjunto integral de pruebas unitarias garantiza la compatibilidad con .NET 8.
- Ejecute pruebas usando el comando
dotnet test como de costumbre.
Que contribuye
Puede contribuir con placer a este repositorio. Oriente en la estructura del directorio y el estilo general del código de este repositorio y consulte nuestras pautas contribuyentes para obtener más detalles. Si desea hacer una pregunta o sugerir algo, abra un problema.