常用算法
草青工作室
既然选择了方向,必将风雨兼程。
展开
-
java - 算法 - 大顶堆、小顶堆 排序
java - 算法 - 大顶堆、小顶堆 排序一、完全二叉树的数组表示形式特性最后一个父节点下标为 (len/2)-1若当前节点的下标为i父节点的下标为 (i-1)/2左子节点的下标为 (i*2)+1 或 (i<<1)+1右子节点的下标为 (i*2)+2 或 (i<<1)+2排序后特性大顶堆,排序后为正序;小顶堆,排序后为倒序;二、运行结果arr 1 0 2 9 3 8 4 7 5 6 maxHeap 9 7 8 5 ...原创 2020-07-31 20:22:58 · 466 阅读 · 0 评论 -
算法-c#-基于朴素贝叶斯+词频向量空间模型的文本分类实现
算法-c#-基于朴素贝叶斯+词频向量空间模型的文本分类实现一、朴素贝叶斯分类:公式:P(C|X) = P(X|C)P(C)/P(X)其中:P(C|X):后验概率P(X|C):似然概率(条件概率)P(C):先验概率P(X):联合概率二、朴素贝叶斯文本分类文本分类就是求解:“待分类文本特征”,在训练样本中各分类下的“后验概率” 。三、朴素贝叶斯转换为文本分类的两个模型1.多项式模型(词频模型)在多项式...原创 2018-03-20 11:38:38 · 1118 阅读 · 0 评论 -
算法-c#-朴素贝叶斯算法在文本分类中的应用
算法-c#-朴素贝叶斯算法在文本分类中的应用一、朴素贝叶斯分类:公式:P(C|X) = P(X|C)P(C)/P(X)其中:P(C|X):后验概率P(X|C):似然概率(条件概率)P(C):先验概率P(X):联合概率二、朴素贝叶斯文本分类文本分类就是求解:“待分类文本特征”,在训练样本中各分类下的“后验概率” 。三、朴素贝叶斯转换为文本分类的两个模型1.多项式模型(词频模型)在多项式模型中, 设某...原创 2018-03-15 20:38:35 · 1562 阅读 · 0 评论 -
算法-二分查询、拆半查询
算法-二分查询、拆半查询1.它的基本思想是:将n个有序的排列的元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较。2.比较结果有三种情况:2.1 如果x=a[n/2]则找到x,算法终止。2.2 如 果x2.3 如果x>a[n/2],则我们只要在数组a的右 半部继续搜索x。3.二分查询步骤实例代码:public class T原创 2017-05-22 22:58:04 · 576 阅读 · 0 评论 -
json 格式化输出
需要1:Newtonsoft.Json.dll 组件需要2:自定义扩展方法 /// /// 生成Json格式 /// key=字段名,value=字段值 /// /// 待序列化的对象 /// /// 创建人员(日期):★xxj★(111026 19:08)原创 2015-09-11 16:05:00 · 4091 阅读 · 0 评论 -
使用二进制权限控制
/*引言: 使用二进制权限控制,可以减少程序的逻辑判断,如有50 种权限需要验证, 一般会写 if...else if...else if 或 if(n==1 || n==2 || ... n=50 ) 这种写法。 如果使用二进制权限控制,则可使用一个if即可验证 if((权限码|n)==n), 注意 n 必须为 2的幂级。 c#中标记[Syst原创 2015-03-25 16:34:44 · 5474 阅读 · 0 评论 -
C# 使用二进制 逻辑(与、或、非)位移运算 控制系统权限
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Grass.Authorize{ /// /// 二进制授权帮助类,最多支持 62 种不同权限,鉴权值最大为2的62次方(即:4611686018427387904) ///原创 2014-12-17 15:36:17 · 6416 阅读 · 0 评论 -
C# .NET 获取枚举值的自定义属性(特性)信息
一、引言枚举为我看日常开发的可读性提供的非常好的支持,但是有时我们需要得到枚举值得描述信息或者是注释(备注)信息比如要获得 TestEmun.aaa 属性值得备注 AAA,比较不方便得到。 public enum TestEmun { /// AAA aaa =1, /// BBB bbb =2, /原创 2013-01-30 16:43:08 · 18284 阅读 · 0 评论 -
删除字符串尾部重复的“字符串”
使用 .net 自带的方法 TrimEnd(char[]) 也可以删除,但是有些情况不是我们想要的结果如:source = bx20x0x0x0;delStr = x0;source = source.TrimEnd("x0".ToArry());这时 source 的值为:bx2;其实我们的预期是,想得到 bx20 值。上面多删除了一个 0。解决方案:原创 2012-12-12 20:10:08 · 1147 阅读 · 0 评论 -
C# Dictionary(字典)的键、值排序
Dictionary dic1 = new Dictionary(); dic1.Add("ddd","123"); dic1.Add("aaa", "123"); dic1.Add("ccc", "123"); dic1.Add("fff", "123"); dic1.Add("eee", "123"); dic原创 2012-09-21 20:39:11 · 40866 阅读 · 0 评论 -
在 stream流 和 byte[] 中查找(搜索)指定字符串
在 stream流 和 byte[] 中查找(搜索)指定字符串这里注重看的是两个 Search 的扩展方法,一个是 stream 类型的扩展,另一个是 byte[] 类型的扩展,如果大家有更好的“算法”,请给回复,我们一起优化! -- 常用扩展代码,需要这部分代码的支持!using System;using System.Collections.Generic;usin原创 2012-04-26 14:02:56 · 4998 阅读 · 3 评论 -
使用 C# lamda 表达式写的两种递归函数
使用 C# lamda 表达式写的两种递归函数//将一个平行数据,整理为一个树形数据private void Test1(List allTypeList){ //查找父节点 List rootType = allTypeList.Where(o => o.ParentId == -1).ToList(); //递归主函数 Action addChildType =原创 2012-08-16 15:49:03 · 3850 阅读 · 0 评论 -
两两组合算法-递归实现方法
count = len(len-1)/narr={1,2,3}len=3n=2组合的个数 count = len(len-1)/2 = 3(3-1)/2 =3---------------------- 得到的组合结果为1,21,32,3----------------------using System;using System.Collectio原创 2012-02-03 11:41:32 · 4638 阅读 · 0 评论