算法
文章平均质量分 84
SlimeNull
.NET 与 C# 狂热信徒
展开
-
[C#] 好耶! 是幻影坦克! 原理讲解, 完整类库, 现成代码.
啥是幻影坦克? 幻影坦克就是, 一张黑白图片, 在黑色背景下和白色背景下能够显示出不同的图像.首先, 我可以明确的告诉你, 它的原理就是控制像素的颜色和Alpha通道(不透明度), 来使显示的图像在不同背景下显示不同的颜色.最基本的, 就是, 一张半透明的黑色薄膜, 如果在黑色的纸上, 你什么也看不出来, 但如果在白色纸上, 你可以看见, 它是灰色.本文中, Alpha 统一拟定为 0 ~ 1 的浮点数, 像素亮度统一为 0 ~ 1 即像素’白的程度’, 例如纯白为1, 纯黑则0.注意:本项原创 2021-03-03 16:44:09 · 8994 阅读 · 2 评论 -
[C#] CHO.Json操作Json数据
这是一个类似于Newtonsoft.Json的项目, 但与其有些出入。这是它与Newtonsoft.Json的差别:CHO.Json支持你像Python那样不需要实体类而简便的操作小型数据, 也支持将类的实例序列化为Json文本与将分析完毕的Json数据反序列化为特定类的实例CHO.Json少了许多冗余的功能, 例如将图片序列化为字符串, 因此CHO.Json可能要比Newtonsoft.Json轻量许多。CHO.Json的源代码比Newtonsoft.Json更适合初学者阅读, 在看懂它的代.原创 2020-10-28 23:52:44 · 323 阅读 · 0 评论 -
[C#] 运算包含数学表达式的字符串
关于:原理讲解代码示例完整程序源码下载适用于:实例代码适用于: .NET Framework & .NET Core算法通用. 只要你能够找到与算法对应的实现方式.将要实现:分析表达式实现所有的通用运算符实现三元运算符原理:使用"状态机"算法分析表达式根据运算符优先级, 不断尝试运算, 最终得到结果详解:第一步, 我们需要将运算表达式分成一个个节点(token), 这个节点可能是一个数字, 可能是一个运算符, 至于表达式里的括号, 我们会使用递归来原创 2020-10-29 11:41:22 · 877 阅读 · 1 评论 -
[C#] 无需实体类, 解析读写Json, 简单操作。
1. 关于:这是我自己写的一个类库, 已经封装到了一个dll中, 暂且命名为CHO.Json, 它能够使你像Python那样操作Json数据, 非常适合新手虽然在操作较大的Json数据时, 需要实体类会更方便, 但是这个类库, 可以让你实时判断Json数据的类型. 当然, 以后也会考虑加入需实体类的序列化与反序列化.它具有较大的容差值, 所以允许一些Json不允许的操作, 例如将Bool值作为Object中的键, CHO.Json支持这样, 由CHO.Json生成的Json文本, CHO.Json完原创 2020-07-02 23:24:19 · 1688 阅读 · 3 评论 -
数组去重: 超高速字符串去重 (含保留原顺序的方法)
1. 你需要知道这些代码适用于:将字符串数组中的重复元素去除, 仅留下一个应用场景:你有一个超级长的文本文件, 这里面每一行都是一条数据, 例如这些数据是用爬虫获取的搜索关键字, 但可能含有重复, 你现在需要将它们去重. 这个算法可以帮助你快速完成去重的工作局限性:下面将介绍两种算法一种是先进行排序, 这时, 相同的元素都在一起了, 然后再进行一次遍历去重, 那么除了排序的时间, 仅进行一次遍历就可以去重, 速度很快, 但原有顺序改变了.第二种算法是较为特殊的算法, 借助了引用类型原创 2020-06-27 05:43:32 · 769 阅读 · 1 评论 -
排序算法: 超高速根据字符串长度排序的算法
1. 你需要知道这些:代码适用于:适用于字符串数组的元素长度变化量较小的, 比如字符串的长度普遍在1~50, 那么此时, 这个算法将有超高的性能, 测试结果是 50万条数据排序所需时间为1s多一点(你没看错).应用场景:你有一个超级长的文本文件, 这里面每一行都是一条数据, 例如这些数据是用爬虫获取的搜索关键字, 你现在需要将它们排序, 别犹豫, 我认为这个算法非常适合你.局限性字符串数组的元素长度变化量越大, 该算法效率越低, 请根据需求使用.2.算法的主要内容主要原理:定原创 2020-06-26 02:04:05 · 566 阅读 · 0 评论