算法
文章平均质量分 91
QilongPan
这个作者很懒,什么都没留下…
展开
-
从头到尾解析Hash表算法
十一、从头到尾解析Hash 表算法作者:July、wuliming、pkuoliver 出处:http://blog.csdn.net/v_JULY_v。 说明:本文分为三部分内容, 第一部分为一道百度面试题Top K算法的详解;第二部分为关于Hash表算法的详细阐述;第三部分为打造一个最快的Hash表算法。----------------------------转载 2016-11-28 20:23:40 · 320 阅读 · 0 评论 -
最大流之Ford-Fulkerson方法详解及实现
最大流问题常常出现在物流配送中,可以规约为以下的图问题。最大流问题中,图中两个顶点之间不能同时存在一对相反方向的边。边上的数字为该条边的容量,即在该条边上流过的量的上限值。最大流问题就是在满足容量限制条件下,使从起点s到终点t的流量达到最大。在介绍解决最大流问题的Ford-Fulkerson方法之前,先介绍一些基本概念。1. 残存网络与增广路径根据图和各条边上的流可以画出转载 2017-03-26 14:18:28 · 2108 阅读 · 0 评论 -
快速排序算法
这是在实际中最常用的一种排序算法,速度快,效率高。快速排序是非常优秀的排序算法。它是由是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,属于分治法(Divide-and-ConquerMethod)的一种。算法思想: 1.先从数列中取出一个数作为基准数(理论上可以随便找一个)。 2.将比基准数大的数全放到它的右边,小于或等于它的数全转载 2017-03-03 09:51:42 · 200 阅读 · 0 评论 -
极小极大搜索方法、负值最大算法和Alpha-Beta搜索方法
1. 极小极大搜索方法 一般应用在博弈搜索中,比如:围棋,五子棋,象棋等。结果有三种可能:胜利、失败和平局。暴力搜索,如果想通过暴力搜索,把最终的结果得到的话,搜索树的深度太大了,机器不能满足,一般都是规定一个搜索的深度,在这个深度范围内进行深度优先搜索。 假设:A和B对弈,轮到A走棋了,那么我们会遍历A的每一个可能走棋方法,然后对于前面A的每一个走棋方法,遍历B的每一个走棋方转载 2017-02-15 10:54:46 · 2932 阅读 · 1 评论 -
程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大系列集锦
程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大经典原创系列集锦与总结(七月在线:https://www.julyedu.com/,面试 & 算法 & 机器学习在线课程)作者:July--结构之法算法之道blog之博主。时间:2010年10月-2014年12月。出处:http://blog.csdn.net/v_JULY_v 。说明:本博客中部分转载 2017-02-13 15:08:31 · 249 阅读 · 0 评论 -
基本搜索算法
博弈树搜索技术简介:博弈树的搜索算法,负值极大搜索,alpha-beta搜索,渴望搜索,PVS极窄窗口搜索等。通常来说,搜索算法常常和以下技术联合在一起。如下:1.置换表,记录已经搜索过的棋局,避免再次搜索。2.吃子启发,优先试下能够吃对方棋子的走法。3.杀手启发,历史启发简化版。4.历史启发,优先试下历史统计数据得出的比较好的走法。5.静止期搜索,继续对某些叶子结点搜转载 2017-01-14 09:48:31 · 872 阅读 · 0 评论 -
计算完全最短路径的Floyd算法剖析
到两个重要矩阵: 1.d[numVex][numVex] (numVex图的顶点数):最开始该矩阵就是图的邻接矩阵,经过Floyd算法处理开后,d[numVex][numVex]中的d[i][j],表示着从顶点i到j的最短路径的权重。 2.p[numVex][numVex]:p[i][j]表示从i到j的最短路径上 i的后继,例如1到5最短路劲为1-2-4-5转载 2017-01-03 18:15:16 · 435 阅读 · 0 评论 -
计算完全最短路径的Floyd算法
Floyd算法可以用于构造无向或有向加权图(不包含长度为负的回路)的完全最短路径:Floyd算法算法的构造过程非常类似于Warshall算法,所以放在一起讲:Warshall算法是通过每次加入一个顶点,看把这个顶点作为中间顶点是否能改进传递闭包的矩阵(通过这个新加入的顶点作为中间桥梁,使得原来不可达的2个顶点可达,以此逐步向传递闭包逼近)。Floyd算法转载 2017-01-03 18:08:55 · 1007 阅读 · 0 评论 -
动态规划 计算二项式系数
动态规划计算二项式系数,主要用到了一个性质C(m,n)=C(m,n-1)+C(m-1,n-1);这个式子将C(m , n)的计算问题表述为了(问题描述)C(m-1 , n -1)和C(m -1,n)两个较小的交叠子问题。初始条件:C(m , m) = C(n , 0) = 1得到c(n,k)::代码1(c(n,k):k为固定值):转载 2016-12-21 20:56:04 · 1714 阅读 · 0 评论 -
极小化极大算法与负极大值算法
1.极小化极大算法(Minimax) Minimax算法又名极小化极大算法,是一种找出失败的最大可能性中的最小值的算法。Minimax算法常用于棋类等由两方较量的游戏和程序,这类程序由两个游戏者轮流,每次执行一个步骤。我们众所周知的五子棋、象棋等都属于这类程序,所以说Minimax算法是基于搜索的博弈算法的基础。该算法是一种零总和算法,即一方要在可选的选项中选择将其优势最大化的选择,而转载 2016-10-11 19:30:02 · 3143 阅读 · 0 评论 -
KMP算法详解
【KMP算法简介】 KMP算法是一种改进后的字符串匹配算法,由D.E.Knuth与V.R.Pratt和J.H.Morris同时发现,因此人们称它为克努特——莫里斯——普拉特操作(简称KMP算法)。通过一个辅助函数实现跳过扫描不必要的目标串字符,以达到优化效果。 【传统字符串匹配算法的缺憾】 Bill认为,对于一种优化的算法,既要知原创 2016-12-02 17:05:22 · 418 阅读 · 0 评论 -
算法导论------递归算法的时间复杂度求解
目录1.算法设计与分析概述 2.非递归算法分析 3.递归算法分析 3.1利用数列知识 3.2代入法 3.3递归树 3.4主方法求解递推式 4.参考资料1.算法设计与分析概述 在总结递归算法的时间复杂度分析之前,应该明确几组概念。 算法仅仅是求解问题的解决方案,这个解决方案本身并不是问题的答案,而是能获得答案的指令序列。只有通过执行算法才可以获得求解问题的...转载 2018-08-23 18:26:05 · 3178 阅读 · 0 评论