Les algorithmes - C #
Tous les algorithmes mis en œuvre en C # - À des fins d'éducation
Le référentiel est une collection d'une variété d'algorithmes implémentés en C #. Les algorithmes s'étendent sur une variété de sujets de l'informatique, des mathématiques et des statistiques, la science des données, l'apprentissage automatique, l'ingénierie, etc. Les implémentations et leurs documentations associées sont censées fournir une ressource d'apprentissage aux éducateurs et aux étudiants. Par conséquent, on peut trouver plus d'une implémentation pour le même objectif, mais en utilisant différentes stratégies et optimisations d'algorithmes.
Liste des algorithmes
Algorithmes
- Crypto
- Paddages
- ISO 10125-2 rembourrage
- ISO 7816-4 rembourrage
- X9,32 rembourrage
- Rembourrage TBC
- Rembourrage PKCS7
- Digestion
- Ascon Hash Digest
- Digest MD2
- Compression de données
- TRANSFORMATION DE BALLE
- Compresseur de Huffman
- Compresseur de Shannon-Fano
- Encodeurs
- César
- Vigenere
- Colline
- Nysiis
- Son
- Feistel
- Flowfish
- Graphique
- Arbre couvrant minimum
- Algorithme de Prim (matrice d'adjacence)
- L'algorithme de Kruskal
- Étendue
- Étendue
- DepthFirstSearch
- Chemin le plus court Dijkstra
- Floydwarshall
- Kosaraju
- Problème de sac à dos
- Solveur naïf
- Solveur de programmation dynamique
- Branche et solveur lié
- IHeuristicknapsacksolver
- Algèbre linéaire
- Distances
- Chebyshev
- Euclidien
- Manhattan
- Minkowski
- Valeur propre
- Arithmétique modulaire
- Théorème de reste chinois
- Algorithme euclidien étendu
- Multiplicative modulaire inverse
- Numérique
- Absolu
- Addition sans arithmétique
- Calculateur de somme aliquote
- Camion de nombres amicaux
- Plaque
- Décomposition
- Décomposition de Lu
- Mince décomposition du vecteur singulier
- Sol
- Plus grand diviseur commun
- GCD euclidien
- GCD binaire
- Factorisation
- Factorisation de la division des essais
- Exponentiation modulaire
- Série
- Élimination de Gauss-Jordan
- Binomial coefficient
- Factoriel
- Vérificateur de numéro Keith
- Pseudo-inverse
- Vérificateur narcissique
- Cube Perfect Cube
- Vérificateur de nombres parfaits
- Vérificateur carré parfait
- Méthode Euler
- Méthode Classic Runge-Kutta
- Vérification de la primalité Miller-Rabin
- Krishnamurthynumbercheker
- Numéro automorphe
- Problème de Josephus
- Calcul de la racine carrée de Newton
- Fonction softmax
- Recommandée
- Recherche
- A-star
- Recherche binaire
- Recherche de boyermoore
- Recherche rapide
- Recherche de fibonacci
- Recherche d'interpolation
- Recherche de saut
- Recherche linéaire
- Recherche binaire récursive
- Sorte
- Comparaison
- Tri binaire
- Tri bogo
- Tri bulle
- Cocktail
- Peigne
- Toi de cycle
- Torsage d'échange
- Trie de tas
- Tri insertion
- Fusion
- Tri de crêpes
- Tri rapide
- Médiane de trois pivot
- Pivot de point moyen
- Pivot aléatoire
- Tri de sélection
- Tri
- Toi Tim
- Sort TIM simplifié
- Externe
- Entier
- Tri de comptage
- Trier
- Radix Toi
- Chaîne
- Agriculteurs
- Séquences
- A000002 Kolakoski
- A000004 zéro
- A000005 Compte de diviseurs
- A000008 apporter la monnaie
- A000010 Euler's Totient
- A000012 tous les
- A000027 naturel
- A000032 Lucas Nombres
- A000040 Primes
- A000045 Fibonacci
- A000079 pouvoirs de 2
- A000108 Catalan
- A000120 1 Counting
- A000124 Nombres polygonaux centraux
- A000125 Numéros de gâteaux
- A000142 factoriel
- A000213 Tbonacci Nombres
- A000215 Nombres Fermat
- Nombres de Tetranacci A000288
- Carrés A000290
- Nombres tétraédriques A000292
- Cubes A000578
- A000720 Primepi
- A001146 Nombre de fonctions booléennes
- A001462 Golomb's
- A001478 entiers négatifs
- A002110 Nombres primoriaux
- A002717 Arrangement de triangle d'allumettes
- A005132 Recaman
- A006577 Nombre de «3n + 1» étapes pour atteindre 1
- A006862 Numéros d'Euclide
- A006879 Nombre de nombres premiers par nombre de chiffres
- A006880 Nombre de nombres premiers par des pouvoirs de 10
- A007318 Binomial
- A007395 Tous les deux
- A010051 Constante de premier ordre binaire
- A010701 Tous les trois
- A011557 pouvoirs de 10
- A057588 Kummer Numbers
- A019434 Primes Fermat
- A181391 Van Eck
- Empiler
- Prochain plus grand élément
- Vérificateur entre parenthèses équilibré
- Pile inversée
- Chaîne
- Similarité
- Similitude du cosinus
- Damiserau-Levenshtein Distance
- Distance de Hamming
- Similitude Jaro
- Distance de Jaro-Winkler
- Alignement de chaîne optimal
- Correspondance de motifs
- Match Bitop Matching
- Recherche de chaînes naïves
- Rabin Karp
- Boyer Moore
- Recherche Knuth - Morris - Pratt
- Correspondance de motifs génériques
- Recherche de sous-chaîne Z-Block
- Personnage consécutif le plus long
- Vérificateur de palindrome
- Obtenez toutes les permutations d'une chaîne
- Autre
- Fermat Prime Checker
- Tamis d'eratosthène
- Luhn
- Int2binaire
- Géolocalisation
- Madelbrot
- Koch Snowflake
- Conversion RGB-HSV
- Remplissage des inondations
- Optimisation de Pareto
- Optimisation de Gauss
- Décisions Convolutions
- La variance de Welford
- Julian Pâques
- Rho de Pollard
- Hachage de géolocalisation
- Géofencing
- Algorithme de triangulation
- Problèmes
- Mariage stable
- Coup de gale
- Acceptre
- Proposant
- N-Queens
- Programmation dynamique
- Changement de pièce
- Distance de Levenshtein
Structures de données
- Bit
- Chronologie
- Segmenter les arbres
- Arbre de segment
- Multiplication des arbres de segment
- Mise à jour de l'arborescence du segment
- Arbre de recherche binaire
- Bouc émissaire
- Arbre Fenwick (ou arbre indexé binaire)
- Aa arbre
- Arbre avl
- Arbre noir
- Empiler
- Pile basée sur la table
- Pile basée sur la liste
- Pile basée sur la file d'attente
- Tas
- Tas min-max
- Tas binaire
- Tas de fibonacci
- Associer le tas
- Probabiliste
- Fleurir
- Count-min Sketch
- Hyperloglog
- File d'attente
- File d'attente basée sur une table
- File d'attente basée sur la liste
- File d'attente basée sur la pile
- Liste liée
- Liste liée individuellement
- Liste doublement liée
- Listes de sauts
- Liste liée à la circulaire
- Graphique
- Graphique pondéré réalisé via la matrice d'adjacence
- Ensemble disjoint
- Liste triée
- Index inversé
- Liste liée sans volonté
- Essais
- Hachage
- Cache
- Cache le moins fréquemment utilisé (LFU)
- Cache le moins récemment utilisé (LRU)
Mise à jour du projet: .NET 8 Migration
Dans le cadre de notre effort continu pour rester à jour avec les dernières technologies, nous avons migré notre projet vers .NET 8. Cette mise à niveau améliore notre projet avec les dernières fonctionnalités et améliorations de l'écosystème .NET.
Nouvelles exigences
- Pour construire et exécuter ce projet, le SDK .NET 8 est maintenant requis.
- Assurez-vous que vos outils de développement sont compatibles avec .NET 8.
Construire le projet
- Avec .NET 8 SDK installé, vous pouvez créer le projet à l'aide de la commande standard
dotnet build . - Tous les scripts de construction existants ont été mis à jour pour accueillir le SDK .NET 8.
Tests en cours d'exécution
- Notre suite complète de tests unitaires assure la compatibilité avec .NET 8.
- Exécutez des tests à l'aide de la commande
dotnet test comme d'habitude.
Contributif
Vous pouvez contribuer avec plaisir à ce référentiel. Veuillez orienter sur la structure du répertoire et le style de code global de ce référentiel et consultez nos directives contributives pour plus de détails. Si vous souhaitez poser une question ou suggérer quelque chose, veuillez ouvrir un problème.