随笔分类 -  算法设计

摘要:参考:http://www.cppblog.com/cxiaojia/archive/2014/03/02/187776.html 1 #include 2 using namespace std; 3 4 template 5 class BTreeNode 6 { 7 publi... 阅读全文
posted @ 2016-01-15 12:00 WongSiuming 阅读(242) 评论(0) 推荐(0)
摘要:1.简介 BM算法是比较优秀的字符串匹配算法.2.主要思想介绍 BM算法主要有三个要点 ①.从pattern的后面往前比较 ②.对匹配过的数据应用KMP ③.将pattern向右滑,找到与string当前字符匹配的a相同的字符位置(若不存在,直接滑过sizeof(leng... 阅读全文
posted @ 2016-01-14 16:04 WongSiuming 阅读(269) 评论(0) 推荐(0)
摘要:1.简介 字符串匹配就是看看那字符串b是不是字符串a的子串.常用的Knuth-Morris-Pratt 算法,又称KMP算法.2.主要思想 当patter在某一位置与string匹配失败时,我们除了知道从string的这个位置进行匹配失败这个结果外,是否可以从前面的匹配中获得更多的信息呢。即当... 阅读全文
posted @ 2016-01-10 23:43 WongSiuming 阅读(341) 评论(0) 推荐(0)
摘要:一.选择排序 选择排序是比较容易理解的排序方法,从未排序的数组中,选择一个最大的元素,放到队首,循环操作,就是选择排序. 操作步骤: 1.设i=0 2.找到数组a[i...length-1]中最大的,记录数组下标值 3.将数组的a[i]与最大值交换位置,则a[0...i]是从大... 阅读全文
posted @ 2015-12-31 19:02 WongSiuming 阅读(329) 评论(0) 推荐(0)
摘要:1.定义概念 Dijkstra(迪杰斯特拉)算法是典型的单源最短路径算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。值得注意的是,该算法要求图中不存在负权边.2.基本思想 设置顶点集合S,初始时,S中仅含有起始点,把从起始点到u且中间只经... 阅读全文
posted @ 2015-12-14 16:45 WongSiuming 阅读(467) 评论(0) 推荐(0)
摘要:1.算法介绍a*算法是一种寻路算法,类似于图的广度优先遍历搜索.2.基本概念设计先两个集合CloseList和OpenList,CloseList表示已经走过的节点,OpenList中的节点表示所有我们可以选择的下一步节点.3.计算步骤:1.将起点设为当前节点,并创建OpenList和CloseLi... 阅读全文
posted @ 2015-12-14 11:29 WongSiuming 阅读(339) 评论(0) 推荐(0)
摘要:一.概念介绍 动态规划(DynamicProgramming),简称DP.是把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解,创立了解决这类过程优化问题的新方法.二.特点 动态规划算法通常基于一个递推公式及一个或多个初始状态。当前子问题的解将由上一次子问题的解推出。使用动态规... 阅读全文
posted @ 2015-12-14 11:21 WongSiuming 阅读(417) 评论(0) 推荐(0)
摘要:待填 阅读全文
posted @ 2015-12-14 11:21 WongSiuming 阅读(256) 评论(0) 推荐(0)