推荐学习C

一赫技术 2024-08-03 10:58:34

推荐学习C#算法库

在现代编程世界中,算法是解决复杂问题的核心工具。无论你是计算机科学、数据科学、机器学习还是工程领域的学生或教育工作者,掌握各种算法都是至关重要的。今天,我要向大家推荐一个优秀的资源——一个用C#实现各种算法的开源项目。这个项目包含了许多经典算法的实现,如排序算法、图算法、搜索算法等。通过学习和探索这些算法,你将能够提高自己的编程技能,并在解决实际问题时发挥更大的作用。无论你是初学者还是有经验的开发人员,都可以从这个项目中获益良多。希望这个资源能够帮助你在编程之路上取得更大的成就!

项目介绍

这个项目是一个用C#实现的各种算法的集合,涵盖了计算机科学、数学和统计学、数据科学、机器学习、工程学等多个领域。项目中的算法实现和相关文档旨在为教育工作者和学生提供学习资源。因此,你可能会发现针对同一目标有多个实现,但使用了不同的算法策略和优化方法。

地址

https://github.com/TheAlgorithms/C-Sharp?tab=readme-ov-file

C#

项目特点多样性

项目中的算法种类繁多,涵盖了从基础到高级的各种算法。这意味着无论你是初学者还是有经验的开发者,都能在这里找到适合自己的学习材料。

算法列表

Algorithms算法

Crypto加密货币

Paddings衬垫

ISO 10125-2 PaddingISO 10125-2 填充

ISO 7816-4 PaddingISO 7816-4 填充

X9.32 PaddingX9.32 填充

TBC Padding待定填充

PKCS7 PaddingPKCS7 填充

Digests摘要

MD2 DigestMD2摘要

Data Compression数据压缩

Burrows-Wheeler transformBurrows-Wheeler 变换

Huffman Compressor霍夫曼压缩机

Shannon-Fano Compressor香农-法诺压缩机

Encoders编码器

Caesar凯撒

Vigenere维杰内尔

Hill爬坡道

NYSIIS

Soundex声音指数

Feistel费斯特尔

Blowfish河豚

Graph图形

Minimum Spanning Tree最小生成树

Prim's Algorithm (Adjacency Matrix)Prim 算法(邻接矩阵)

Kruskal's Algorithm克鲁斯卡尔算法

BreadthFirstTreeTraversal广度优先树遍历

BreadthFirstSearch广度优先搜索

DepthFirstSearch深度优先搜索

Dijkstra Shortest Path迪杰斯特拉最短路径

FloydWarshall弗洛伊德·沃歇尔

Kosaraju科萨拉茹

Knapsack problem背包问题

Naive solver朴素求解器

Dynamic Programming solver动态规划求解器

Branch and bound solver分支定界求解器

IHeuristicKnapsackSolver启发式背包求解器

Linear Algebra线性代数

Distances距离

Euclidean欧几里得

Manhattan曼哈顿

Eigenvalue特征值

Power Iteration功率迭代

Modular Arithmetic模运算

Chinese Remainder Theorem中国剩余定理

Extended Euclidean Algorithm扩展欧几里得算法

Modular Multiplicative Inverse模乘逆

Numeric数字

Aliquot Sum Calculator等分总和计算器

Amicable Numbers Checker友好的数字检查器

Decomposition分解

LU DecompositionLU分解

Thin Singular Vector Decomposition薄奇异向量分解

Greatest Common Divisor最大公约数

Euclidean GCD欧几里得GCD

Binary GCD二元GCD

Factorization因式分解

Trial division Factorization试除因式分解

Modular Exponentiation模幂

Series系列

Maclaurin Series麦克劳林级数

Gauss-Jordan Elimination高斯约尔消元法

BinomialCoefficient二项式系数

Factorial阶乘

Keith Number Checker基思号码检查器

Pseudo-Inverse伪逆

Narcissistic Number Checker自恋数字检查器

Perfect Number Checker完美号码检查器

Perfect Square Checker完美方形检查器

Euler Method欧拉法

Classic Runge-Kutta Method经典龙格-库塔法

Miller-Rabin primality check米勒-拉宾素性检查

KrishnamurthyNumberCheckerKrishnamurthy号码检查器

Automorphic Number自守数

Josephus Problem约瑟夫问题

Newton's Square Root Calculation牛顿平方根计算

Searches搜索次数

A-Star一个明星

Binary Search二分查找

BoyerMoore Search博耶摩尔搜索

Fast Search快速搜索

Fibonacci Search斐波那契搜索

Interpolation Search插值搜索

Jump Search跳转搜索

Linear Search线性搜索

Recursive Binary Search递归二分查找

Sorts排序

Comparison比较

Binary Insertion Sort二元插入排序

Bogo Sort波戈排序

Bubble Sort冒泡排序

Cocktail Sort鸡尾酒排序

Comb Sort梳排序

Cycle Sort循环排序

Exchange Sort交换排序

Heap Sort堆排序

Insertion Sort插入排序

Merge Sort归并排序

Pancake Sort煎饼排序

Quick Sort快速排序

Median of three pivot三枢轴的中位数

Middle point pivot中点枢轴

Random pivot随机枢轴

Selection Sort选择排序

Shell Sort希尔排序

Tim Sort蒂姆·索特

External外部的

Merge Sort归并排序

Integer整数

Counting Sort计数排序

Bucket Sort桶排序

Radix Sort基数排序

String细绳

MSD Radix SortMSD 基数排序

Shufflers洗牌者

Fisher-Yates Shuffler费舍尔-耶茨洗牌器

Sequences序列

A000002 KolakoskiA000002 科拉科斯基

A000004 Zero

A000005 Count of DivisorsA000005 除数计数

A000008 Make ChangeA000008 做出改变

A000010 Euler's TotientA000010 欧拉方程

A000012 All OnesA000012 全一

A000027 NaturalA000027 自然色

A000032 Lucas NumbersA000032 卢卡斯数

A000040 PrimesA000040 素数

A000045 FibonacciA000045 斐波那契

A000079 Powers of 2A000079 2 的幂

A000108 CatalanA000108 加泰罗尼亚语

A000120 1's CountingA000120 1 计数

A000124 Central Polygonal NumbersA000124 中心多边形数

A000125 Cake NumbersA000125 蛋糕号码

A000142 FactorialA000142 阶乘

A000213 Tribonacci NumbersA000213 特里波纳奇数

A000215 Fermat NumbersA000215 费马数

A000288 Tetranacci NumbersA000288 Tetranacci 数字

A000290 SquaresA000290 方块

A000292 Tetrahedral numbersA000292 四面体数

A000578 CubesA000578 立方体

A000720 PrimePiA000720 PrimePi

A001146 Number of Boolean FunctionsA001146 布尔函数数量

A001462 Golomb'sA001462 哥伦布的

A001478 Negative IntegersA001478 负整数

A002110 Primorial NumbersA002110 原始数字

A002717 Matchstick Triangle ArrangementA002717 火柴三角排列

A005132 Recaman'sA005132 雷卡曼的

A006577 Number of '3n+1' steps to reach 1A006577 达到 1 的“3n+1”步数

A006862 Euclid NumbersA006862 欧几里得数

A006879 Number of Primes by Number of DigitsA006879 按位数计算质数个数

A006880 Number of Primes by Powers of 10A006880 10 的幂的素数个数

A007318 BinomialA007318 二项式

A007395 All TwosA007395 全两

A010051 Binary Prime ConstantA010051 二进制素数常数

A010701 All ThreesA010701 三人行

A011557 Powers of 10A011557 10 的幂

A057588 Kummer NumbersA057588 库默号码

A019434 Fermat PrimesA019434 费马素数

A181391 Van Eck'sA181391 范艾克的

String细绳

Similarity相似

Hamming Distance汉明距离

Jaro Similarity哈罗相似度

Jaro-Winkler Distance哈罗-温克勒距离

Pattern Matching模式匹配

Naive String Search朴素字符串搜索

Rabin Karp拉宾·卡普

Boyer Moore博耶·摩尔

Knuth–Morris–Pratt Search高德纳-莫里斯-普拉特搜索

Z-block substring searchZ 块子串搜索

Longest Consecutive Character最长连续字符

Palindrome Checker回文检查器

Get all permutations of a string获取字符串的所有排列

Other其他

Fermat Prime Checker费马素数检查器

Sieve of Eratosthenes埃拉托斯特尼筛法

Luhn卢恩

Int2Binary整型2二进制

GeoLocation地理位置

Mandelbrot曼德尔布罗特

Koch Snowflake科赫雪花

RGB-HSV ConversionRGB-HSV 转换

Flood Fill洪水填充

Pareto Optimization帕累托优化

Gauss Optimization高斯优化

Decisions Convolutions决策卷积

Welford's Variance韦尔福德方差

Julian Easter朱利安复活节

Pollard's Rho波拉德的Rho

Problems问题

Stable Marriage稳定的婚姻

Gale-Shapley盖尔-沙普利

Accepter接受者

Proposer提议者

N-QueensN-皇后区

Backtracking回溯

Dynamic Programming动态规划

Coin Change硬币找零

Levenshtein Distance编辑距离

Data Structures数据结构

Bit Array位数组

Timeline时间线

Segment Trees线段树

Segment Tree线段树

Segment Tree Multiplication线段树乘法

Segment Tree Update线段树更新

Binary Search Tree二叉搜索树

Scapegoat Tree替罪羊树

Fenwick tree (or Binary Indexed Tree)芬威克树(或二元索引树)

AA TreeAA树

AVL TreeAVL树

Red-Black Tree红黑树

Stack堆

Array-based Stack基于数组的堆栈

List-based Stack基于列表的堆栈

Queue-based Stack基于队列的堆栈

Heap堆

Min-Max Heap最小-最大堆

Binary Heap二叉堆

Fibonacci Heap斐波那契堆

Pairing Heap配对堆

Probabilistic概率论

BloomFilter布隆过滤器

Count-Min Sketch计数最小草图

HyperLogLog超级日志日志

Queue队列

Array-based Queue基于数组的队列

List-based Queue基于列表的队列

Stack-based Queue基于堆栈的队列

Linked List链表

Singly Linked List单链表

Doubly Linked List双向链表

Skip List跳过列表

Graph图形

Directed Weighted Graph Via Adjacency Matrix通过邻接矩阵的有向加权图

Disjoint Set不相交集

SortedList排序列表

Inverted index倒排索引

Unrolled linked list展开的链表

Tries尝试

HashTable哈希表

Cache缓存

Least Frequently Used (LFU) Cache最不常用 (LFU) 缓存

Least Recently Used (LRU) Cache最近最少使用 (LRU) 缓存

总结

项目的设计初衷是为教育工作者和学生提供一个学习平台。每个算法都有详细的实现和文档,帮助你更好地理解算法的工作原理和应用场景。

总之,这个用C#实现的算法项目是一个非常宝贵的学习资源。无论你是想提升自己的算法知识,还是希望为开源社区做出贡献,这个项目都能为你提供一个良好的平台。赶快加入我们,一起探索算法的世界吧!

0 阅读:0

一赫技术

简介:感谢大家的关注