码迷,mamicode.com
首页 >  
搜索关键字:基本思想    ( 2684个结果
单源最短路径(Dijkstra)——贪心算法
Dijkstra算法是解单源最短路径问题的贪心算法。其基本思想是,设置顶点集合点集合S并不断地做贪心选择来扩充这个集合。一个顶点属于集合S当且仅当从源到该顶点的最短路径长度已知。初始时,S中仅含有源。设u是G的其一顶点。把从源到u且中间只经过S中顶点的路称为从源到u的特殊路径,并用数组Distance记录当前每个顶点所对应的最短特殊路径长度。Dijkstra算法每次从V-S中取出具有最短特殊路长度...
分类:其他好文   时间:2014-08-09 13:31:37    阅读次数:271
HDOJ 1142 A Walk Through the Forest 【Dijkstra】+【DFS】
题意:从2到1的所有路径中找出最短的路,并且输出最短路径有几条。 策略:先求出最短路径,然后再找出从2到1的最短路径有几条。最短路径用dijkstra算法来求出,什么是dijkstra算法,简单来说,dijkstra算法就是路径长度递增次序产生最短路径的算法: 基本思想是:把集合V分成两组; (1)S:已求出最短路径的顶点的集合 (2)V-S=T:尚未确定最短路径的顶点集合 将T中顶点按...
分类:其他好文   时间:2014-08-09 11:45:57    阅读次数:275
桶排序算法
桶排序的基本思想 桶排序利用函数的映射关系,将待排序的数组分成了N个块(桶)。实际上,桶排序的f(k)值的计算,其作用就相当于快排中划分,已经把大量数据分割成了基本有序的数据块(桶)。然后只需要对每个桶中的少量数据做比较排序(比较排序:即在比较的基础上进行交换,达到排序效果)即可。 假如待排序列K= {49、 38 、 35、 97 、 76、 73 、 27、 49 }。这些数据全部在1—1...
分类:其他好文   时间:2014-08-09 00:19:17    阅读次数:267
字符串匹配算法
1. 朴素的匹配算法(暴力匹配) 寻找子串p在主串s中第pos个字符后的位置。 分别利用计数指针i和j指示主串s和子串p中当前待比较的字符。算法的基本思想是:从主串s的第pos个字符起和模式的第一个字符比较,如果相等,继续逐个比较后续字符;否则从主串的下一个字符起,重新和模式的第一个字符比较。算法的...
分类:其他好文   时间:2014-08-08 23:51:51    阅读次数:350
计数排序与基数排序
计数排序是一个非基于比较的排序算法。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。计数排序的基本思想就是对于每一个输入元素x,确定出小于x的元素个数。有了这一信息就可以把x直接放到它在最终输出数组中的位置上。例如,如果有17个元素小于x...
分类:其他好文   时间:2014-08-08 17:37:56    阅读次数:190
计数排序算法
基本思想: 统计数组data,小于data[i]的个数为N,则把data[i]放在第N+1个位置上面。 实用范围: 所有数都在[0,max]范围内,max为数组的最大值,适用于max不是很大的情况。 对于数据2 5 3 0 2 3 0 3程序执行的过程如下图所示: C++代码: #include using namespace...
分类:其他好文   时间:2014-08-08 16:09:56    阅读次数:202
(转) 白话经典算法系列之三 希尔排序的实现(附源代码实现)
链接:http://blog.csdn.net/morewindows/article/details/6668714希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素...
分类:其他好文   时间:2014-08-07 13:01:50    阅读次数:302
数据库Sharding的基本思想和切分策略
本文着重介绍sharding的基本思想和理论上的切分策略,关于更加细致的实施策略和参考事例请参考我的另一篇博文:数据库分库分表(sharding)系列(一) 拆分实施策略和示例演示一、基本思想 Sharding的基本思想就要把一个数据库切分成多个部分放到不同的数据库(server)上,从而缓解单一数...
分类:数据库   时间:2014-08-07 12:44:30    阅读次数:277
栈的两个应用:括号匹配的检验和表达式求值
1. 括号匹配的检验 假设表达式中含有3种括号:(),[],{},其嵌套的顺序随意。检验括号是否匹配。 基本思想:在算法中设置一个栈,每读入一个括号,若是右括号,则或者与栈顶匹配的左括号相互消解,或者是不合法的情况;若是左括号,则直接压入栈中。若括号匹配,在算法的开始和结束时,栈都应该是空的。 代码...
分类:其他好文   时间:2014-08-07 00:26:37    阅读次数:385
筛法求素数
筛法求素数,寻找素数最经典快速的方法!!! 用筛法求素数的基本思想是: 把从1开始的、某一范围内的正整数从小到大顺序排列, 1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。如有: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29...
分类:其他好文   时间:2014-08-06 23:01:02    阅读次数:212
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!