Welcome 微信登录

首页 / 软件开发 / 数据结构与算法

详解.Net下的加密解密算法(4) 玩转Hash加密

详解.Net下的加密解密算法(4) 玩转Hash加密

详解.Net下的加密解密算法(4) 玩转Hash加密2013-08-19 csdn ghostbear在本系列文章的第一部分里,我们感性的认识了.Net下的几种常用的Hash加密。虽然这些功能强大的代码碎片能解决你目前碰到的hash任务,但却不利于后期维护。好吧,我们就把他们糅合到一起吧,是时候给他们打扮下啦。文章第部分提到的哈希算法有:MD5,SHA1,SHA256,SHA384,SHA512。5种算法,但功能都一致:就是把输入的数据进行哈希处理。好吧,...
详解.Net下的加密解密算法(5) 玩转对称加密

详解.Net下的加密解密算法(5) 玩转对称加密

详解.Net下的加密解密算法(5) 玩转对称加密2013-08-19 ghostbear 上篇博文介绍了怎么玩转Hash算法,不过那篇文章没有交代清楚。这篇博文我将力争将那些没交代清楚的东东都说明白了。当然本文的主题是玩转对称加密。.NET下的对称加密技术主要有这么几种:DES,AES,Rijndael,TripleDES(3DES)。现在就来玩转它们吧!与上篇博文一样,首先创建一个接口:“IEncryptAndDecrypt”,然...
详解.Net下的加密解密算法(6) 玩转非对称加密

详解.Net下的加密解密算法(6) 玩转非对称加密

详解.Net下的加密解密算法(6) 玩转非对称加密2013-08-19 csdn ghostbear本博文来聊聊怎么玩转非对称加密吧,这里主要介绍.NET算法下的3种非对称加密算法:DSA,RSA,ECDsa。上两篇博文分别为Hash家族和非对称加密家族找到了lead,现在我们就为非对称加密技术找个合适的lead吧。首先创建一个接口:“IEncryptAndDecrypt”,然后为上面的3中算法分别创建3个实现类并让这些类实现接口&...
希尔排序算法的实现

希尔排序算法的实现

希尔排序算法的实现2013-08-19希尔排序(shellsort)又叫增量递减(diminishing increment)排序,是由D.L. Shell发明的,这个算法是通过一个逐渐减小的增量使一个数组逐渐趋近于有序从而达到排序的目的。假设有一个数组int data[16] = {...}。 首先将这个增量设为16 / 2 = 8,这样就将这个数组分成了8个子数组,它们的索引是0, 8 1, 9 2, 10等等 。对这些子数组进行排序。然后再使增量...
算法研究:AOE网与关键路径简介

算法研究:AOE网与关键路径简介

算法研究:AOE网与关键路径简介2013-08-20 csdn Simba888888前面我们说过的拓扑排序主要是为解决一个工程能否顺序进行的问题,但有时我们还需要解决工程完成需要的最短时间问题。如果我们要对一个流程图获得最短时间,就必须要分析它们的拓扑关系,并且找到当中最关键的流程,这个流程的时间就是最短时间。在前面讲了AOV网的基础上,来介绍一个新的概念。在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,用边上的权值表示活动的持续时间,这...
算法研究:AOV网与拓扑排序

算法研究:AOV网与拓扑排序

算法研究:AOV网与拓扑排序2013-08-20 csdn Simba888888在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向图为顶点表示活动的网,我们称之为AOV网(Activity on Vextex Network)。AOV网中的弧表示活动之间存在的某种制约关系,AOV网中不能存在回路,让某个活动的开始要以自己完成作为先决条件,显然是不可以的。设G= { V, E }是一个具有n个顶点的有向图,V中的顶点序列v1,...
算法研究:堆栈与深度优先搜索(迷宫问题)

算法研究:堆栈与深度优先搜索(迷宫问题)

算法研究:堆栈与深度优先搜索(迷宫问题)2013-08-20 csdn Simba888888堆栈的访问规则被限制为Push和Pop两种操作,Push(入栈或压栈)向栈顶添加元素,Pop(出栈或弹出)则取出当前栈顶的元素,也就是说,只能访问栈顶元素而不能访问栈中其它元素。现在我们用堆栈解决一个有意思的问题,定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1...
算法研究:二叉排序树及其图形化

算法研究:二叉排序树及其图形化

算法研究:二叉排序树及其图形化2013-08-20 csdn Simba888888二叉排序树(BST,Binary Sort Tree)具有这样的性质:对于二叉树中的任意节点,如果它有左子树或右子树,则该节点的数据成员大于左子树所有节点的数据成员,且小于右子树所有节点的数据成员。排序二叉树的中序遍历结果是从小到大排列的。二叉排序树的查找和插入比较好理解,主要来看一下删除时的情况。如果需要查找并删除如图8-6-8中的37, 51, 73,93这些在二叉排序...
算法研究:静态查找表

算法研究:静态查找表

算法研究:静态查找表2013-08-21查找表(Search table)是由同一类型的数据元素(或记录)构成的集合。关键字(key)是数据元素中某个数据项的值, 又称为键值,用它可以表示一个数据元素,也可以标识一个记录的数据项(字段),称之为关键码。若此关键字可以唯一地 标识一个记录,则称此关键字为主关键字(primary key)。而对于那些可以识别多个数据元素(或记录)的关键字,称为次 关键字(Secondary Key),次关键字也可以理解为不以唯...
算法研究:求解AOE网的关键路径

算法研究:求解AOE网的关键路径

算法研究:求解AOE网的关键路径2013-08-21 csdn Simba888888前面我们简要地介绍了AOE网和关键路径的一些概念,本文接着对求解关键路径程序的主要函数进行分析。现有一AOE网 图如图7-9-4所示,我们使用邻接表存储结构,注意与拓扑排序时邻接表结构不同的地方在于,这里弧表结点增加了weight 域,用来存储弧的权值。求解事件的最早发生时间etv的过程,就是我 们从头至尾找拓扑序列的过程,因此在求关键路径之前,需要先调用一次拓扑序列算法...
算法研究:图的广度优先遍历

算法研究:图的广度优先遍历

算法研究:图的广度优先遍历2013-08-21 csdn Simba888888图的遍历和树的遍历类似,我们希望从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次,这一过程 就叫做图的遍历(Traverse Graph)。图的遍历方法一般有两种,第一种是我们在前面讲过的《深度优先遍历 (Depth First Search)》,也有称为深度优先搜索,简称为DFS。第二种是广度优先遍历(Breadth First Search), 也有称为广度优...
算法研究:图的深度优先遍历

算法研究:图的深度优先遍历

算法研究:图的深度优先遍历2013-08-21 csdn Simba888888图的遍历和树的遍历类似,我们希望从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次,这一过程 就叫做图的遍历(Traverse Graph)。图的遍历方法一般有两种,第一种是深度优先遍历(Depth First Search),也 有称为深度优先搜索,简称为DFS。第二种是《广度优先遍历(Breadth First Search)》,也有称为广度优先搜索, 简称为B...
算法研究:图解最小生成树之克鲁斯卡尔算法

算法研究:图解最小生成树之克鲁斯卡尔算法

算法研究:图解最小生成树之克鲁斯卡尔算法2013-08-21 csdn Simba888888我们在前面讲过的《克里姆算法》是以某个顶点为起点,逐步找各顶点上最小权值的边来构建最小生成树的。同样的思 路,我们也可以直接就以边为目标去构建,因为权值为边上,直接找最小权值的边来构建生成树也是很自然的想法,只不过 构建时要考虑是否会形成环而已,此时我们就用到了图的存储结构中的边集数组结构,如图7-6-7假设现在我们已经通 过邻接矩阵得到了边集数组edges并按权...
算法研究:图解最小生成树之普里姆算法

算法研究:图解最小生成树之普里姆算法

算法研究:图解最小生成树之普里姆算法2013-08-26 csdn Simba888888我们在图的定义中说过,带有权值的图就是网结构。一个连通图的生成树是一个极小的连通子图,它含有图中全部的顶 点,但只有足以构成一棵树的n-1条边。所谓的最小成本,就是n个顶点,用n-1条边把一个连通图连接起来,并且使得权值 的和最小。综合以上两个概念,我们可以得出:构造连通网的最小代价生成树,即最小生成树(Minimum Cost Spanning Tree)。找连通图...
算法研究:字符串的KMP模式匹配

算法研究:字符串的KMP模式匹配

算法研究:字符串的KMP模式匹配2013-08-26 csdn Simba888888在朴素的模式匹配算法中,主串的pos值(i)是不断地回溯来完成的(见字符串的基本操作中的Index函数)。而计算机 的大仙们发现这种回溯其实可以是不需要的。既然i值不回溯,也就是不可以变小,那么考虑的变化就是子串的pos值(j)了 。通过分析发现子串中如果有相等字符,j值的变化就会不相同,也就是说,这个j值的变化跟主串其实没什么关系,关键就 取决于子串的结构中是否有重复的...
算法研究:最短路径之迪杰斯特拉算法

算法研究:最短路径之迪杰斯特拉算法

算法研究:最短路径之迪杰斯特拉算法2013-08-26对于网图来说,最短路径,是指两顶点之间经过的边上权值之和最少的路径,并且我们称路径上的第一个顶点为源点, 最后一个顶点为终点。最短路径的算法主要有迪杰斯特拉(Dijkstra)算法和弗洛伊德(Floyd)算法。本文先来讲第一种, 从某个源点到其余各顶点的最短路径问题。这是一个按路径长度递增的次序产生最短路径的算法,它的大致思路是 这样的。比如说要求图7-7-3中顶点v0到v1的最短路径,显然就是1。由于...
<< 191 192 193 194 195 196 197 198 199 200 >>