易网时代-编程资源站
Welcome
首页
/
软件开发
/
数据结构与算法
算法研究:图解最小生成树之普里姆算法
2017-02-05
38
算法研究:图解最小生成树之普里姆算法2013-08-26 csdn Simba888888我们在图的定义中说过,带有权值的图就是网结构。一个连通图的生成树是一个极小的连通子图,它含有图中全部的顶 点,但只有足以构成一棵树的n-1条边。所谓的最小成本,就是n个顶点,用n-1条边把一个连通图连接起来,并且使得权值 的和最小。综合以上两个概念,我们可以得出:构造连通网的最小代价生成树,即最小生成树(Minimum Cost Spanning Tree)。找连通图...
算法研究:字符串的KMP模式匹配
2017-02-05
29
算法研究:字符串的KMP模式匹配2013-08-26 csdn Simba888888在朴素的模式匹配算法中,主串的pos值(i)是不断地回溯来完成的(见字符串的基本操作中的Index函数)。而计算机 的大仙们发现这种回溯其实可以是不需要的。既然i值不回溯,也就是不可以变小,那么考虑的变化就是子串的pos值(j)了 。通过分析发现子串中如果有相等字符,j值的变化就会不相同,也就是说,这个j值的变化跟主串其实没什么关系,关键就 取决于子串的结构中是否有重复的...
算法研究:最短路径之迪杰斯特拉算法
2017-02-05
38
算法研究:最短路径之迪杰斯特拉算法2013-08-26对于网图来说,最短路径,是指两顶点之间经过的边上权值之和最少的路径,并且我们称路径上的第一个顶点为源点, 最后一个顶点为终点。最短路径的算法主要有迪杰斯特拉(Dijkstra)算法和弗洛伊德(Floyd)算法。本文先来讲第一种, 从某个源点到其余各顶点的最短路径问题。这是一个按路径长度递增的次序产生最短路径的算法,它的大致思路是 这样的。比如说要求图7-7-3中顶点v0到v1的最短路径,显然就是1。由于...
算法研究:最短路径之弗洛伊德算法
2017-02-05
40
算法研究:最短路径之弗洛伊德算法2013-08-26 csdn Simba888888为了能讲明白弗洛伊德(Floyd)算法的主要思想,我们先来看最简单的案例。图7-7-12的左图是一个简单的3个顶点的连 通网图。我们先定义两个二维数组D[3][3]和P[3][3], D代表顶点与顶点的最短路径权值和的矩阵。P代表对应顶点的最短 路径的前驱矩阵。在未分析任何顶点之前,我们将D命名为D(-1),其实它就是初始图的邻接矩阵。将P命名为P(-1), 初始化 为图...
枚举Enum的用法
2017-02-05
25
枚举Enum的用法2013-11-14一、前言对于枚举Enum,大家都非常熟悉,但枚举出现的场景非常多的时候,是不是可以抽象出一个通用的解决方式。代码大家都会写,但并不是所有人都喜欢写重复的代码,老是用Ctrl+C和Ctrl+V累不累啊?很多人和我一样,非常不喜欢写重复的代码,代码写多了,BUG就多。对于常见的场景,大部分人都喜欢抽象出来,写一套通用的,每个地方都可以用,而且不易出错。当然,你喜欢Ctrl+C和Ctrl+V,本人也没有办法....二、int...
IEnumerable>结构解析通用解决方案(支持指定属性顺序)
2017-02-05
26
IEnumerable>结构解析通用解决方案(支持指定属性顺序)2013-11-14一、前言类似如下字符串"ID", "NameValue", "CodeValue", "ExchangeTypeValue", 6, "invalid""ID2", "NameValue2", "CodeValue2&q...
C#常用算法:Dynamic Object
2017-02-05
31
C#常用算法:Dynamic Object2013-11-14Dynamic Object包含在.Net4.0中,该对象可以允许我们在运行时中改变它的类型,有了这种万金油还有什么问题是我们不能解决的呢?我们来看看它的几个使用例子吧:Var类型和Dynamic类型public static void TestDynamicObject(){ //var object and dynamic objectvar varObj = "this is a...
C#常用算法:并发集合
2017-02-05
29
C#常用算法:并发集合2013-11-14微软对C#(4.0)的框架添加了全新的并发编程框架,现在我们也能用C#开发支持并发概念的程序的。在并发编程中最让人烦恼的应该就是如何数据同步:避免脏读和脏写,当然我们可以通过Lock技术来实现,也可以使用微软提供给我们的并发集合,这些集合都提供了TryDo方法。用它们对数据的读/写操作能在TryDo返回True的情况下执行。我们来看看它们吧:IProducerConsumerCollection所有的并发集合都实现...
C#常用算法:集合
2017-02-05
30
C#常用算法:集合2013-11-14集合类型的数据结构在日常编程中占重要比例,大多数的业务需求都需要用到集合类型的数据结构。.NET平台为我们提供了种类繁多的集合类型的数据结构,我们只需要简单的调用相应的API就能完成对零散数据的整理。本文收集了目前.NET平台下为我们提供的所有集合类型,并提供一个小例子。IEnumerablenamespace System.Collections.Generic{public interface IEnumerabl...
C#常用算法:数组
2017-02-05
30
C#常用算法:数组2013-11-14C#对数组概念进行了彻底的面向对象化,很大程度上降低了我们对数组结构的使用难度,并且它已经支持了.Net平台的垃圾收集机制。随着C#版本的不断更新,从数组中派生出的新数据结构也日益增加。按照28原理,我们只需要使用其中的20%就能解决80%的问题。但为了做到极致,我们还是需要了解下它们。本文总结到C#(4.0)为止的一些与数组相关的数据结构以及它们的用法。基本数组string[] fruit = new string[...
C#常用算法:字典
2017-02-05
28
C#常用算法:字典2013-11-14.Net(4.0)为我们提供了如下类型的字典结构:Dictionary, SortedDictionary, Lookup。这些类型都支持范型,它们的工作原理基本一致,都是提供如下功能:接收健返回值。它们之间的不同处为:SortedDictionar:有序字典,插入字典的元素都按升序进行了排列。Lookup:一键可以对应多值。在字典的数据结构中,真实充当键的不是当前对象的值。而是对象的hash值,这个值是通过objec...
用递归获取XML元素
2017-02-05
29
用递归获取XML元素2013-11-14 cnblogs jasenkin看到的一道题,用递归获取XML元素....static void Main(string[] args){string xmlContent = @"<FileSystem> <DriverC> <Dir DirName="MSDOS622"> <File FileName ="Command.com" ></File&...
机器学习基础(一)K近邻法
2017-02-05
28
机器学习基础(一)K近邻法2013-11-14 csdn博客 cuoqu机器学习分两大类,有监督学习(supervised learning)和无监督学习(unsupervised learning)。有监督 学习又可分两类:分类(classification.)和回归(regression),分类的任务就是把一个样本划为某个已 知类别,每个样本的类别信息在训练时需要给定,比如人脸识别、行为识别、目标检测等都属于分类。回归的 任务则是预测一个数值,比如给定...
机器学习基础(二)决策树
2017-02-05
31
机器学习基础(二)决策树2013-11-14 csdn博客 cuoqu决策树也是有监督机器学习方法。 电影《无耻混蛋》里有一幕游戏,在德军小酒馆里有几个人在玩20问题 游戏,游戏规则是一个设迷者在纸牌中抽出一个目标(可以是人,也可以是物),而猜谜者可以提问题,设迷 者只能回答是或者不是,在几个问题(最多二十个问题)之后,猜谜者通过逐步缩小范围就准确的找到了答案 。这就类似于决策树的工作原理。(图一)是一个判断邮件类别的工作方式,可以看出判别方法很简单,基本...
机器学习基础(三)朴素贝叶斯
2017-02-05
27
机器学习基础(三)朴素贝叶斯2013-11-14 csdn博客 cuoqu贝叶斯决策一直很有争议,今年是贝叶斯250周年,历经沉浮,今天它的应用又开始逐渐活跃,有兴趣的可 以看看斯坦福Brad Efron大师对其的反思,两篇文章:“Bayes"Theorem in the 21st Century”和 “A250-YEAR ARGUMENT:BELIEF, BEHAVIOR, AND THE BOOTSTRAP&rdqu...
机器学习基础(四)逻辑回归
2017-02-05
30
机器学习基础(四)逻辑回归2013-11-14从这节算是开始进入“正规”的机器学习了吧,之所以“正规”因为它开始要建立价值函数(cost function),接着优化价值函数求出权重,然后测试验证。这整套的流程是机器学习必经环节。今天要学习的 话题是逻辑回归,逻辑回归也是一种有监督学习方法(supervised machine learning)。逻辑回归一般用来 做预测,也可以用来做分类,预测是某个类别^....
机器学习基础(五)支持向量机
2017-02-05
27
机器学习基础(五)支持向量机2013-11-14做机器学习的一定对支持向量机(support vector machine-SVM)颇为熟悉,因为在深度学习出现之前, SVM一直霸占着机器学习老大哥的位子。他的理论很优美,各种变种改进版本也很多,比如latent-SVM, structural-SVM等。这节先来看看SVM的理论吧,在(图一)中A图表示有两类的数据集,图B,C,D都提供了一 个线性分类器来对数据进行分类?但是哪个效果好一些?(图一)可能对这...
机器学习基础(六)支持向量机
2017-02-05
32
机器学习基础(六)支持向量机2013-11-14上节基本完成了SVM的理论推倒,寻找最大化间隔的目标最终转换成求解拉格朗日乘子变量alpha的求解问 题,求出了alpha即可求解出SVM的权重W,有了权重也就有了最大间隔距离,但是其实上节我们有个假设:就 是训练集是线性可分的,这样求出的alpha在[0,infinite]。但是如果数据不是线性可分的呢?此时我们就要 允许部分的样本可以越过分类器,这样优化的目标函数就可以不变,只要引入松弛变量即可,它表示错...
机器学习基础(七)Adaboost
2017-02-05
28
机器学习基础(七)Adaboost2013-11-14 csdn博客 cuoquAdaboost也是一种原理简单,但很实用的有监督机器学习算法,它是daptive boosting的简称。说到 boosting算法,就不得提一提bagging算法,他们两个都是把一些弱分类器组合起来来进行分类的方法,统称 为集成方法(ensemble method),类似于投资,“不把鸡蛋放在一个篮子”,虽然每个弱分类器分类的不那么 准确,但是如果把...
最古老的算法:辗转相除法(求两个自然数最大公约数)
2017-02-05
45
最古老的算法:辗转相除法(求两个自然数最大公约数)2013-11-14在数学界,辗转相除法,又称欧几里得算法,被认为是世界上最早的算法(公元前300年),该算法用于求两个最大公约数的算法。辗转相除法首次出现于欧几里得的《几何原本》(第VII卷,命题yⅠ和Ⅱ)中,而在中国则可以追溯至东汉出现的《九章算术》。两个自然数的最大公约数是能够同时整除它们的最大的正整数。辗转相除法基于如下原理:两个整数的最大公约数等于其中较小的数和两数的相除余数的最大公约 数。例如,...
<<
61
62
63
64
65
66
67
68
69
70
>>
版权所有©石家庄振强科技有限公司2024
冀ICP备08103738号-5
网站地图