数据结构与算法
文章平均质量分 79
lab_hit
这个作者很懒,什么都没留下…
展开
-
五大常用算法之五:分支限界法
分支限界法一、基本描述 类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。 (1)分支搜索算法 所谓“分转载 2012-04-09 20:41:14 · 309 阅读 · 0 评论 -
海量数据处理算法
作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日说明:本文分为俩部分,第一部分为10道海量数据处理的面试题,第二部分为10个海量数据处理的方法总结。有任何问题,欢迎交流、指正。出处:http://blog.csdn.net/v_JULY_v。第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个I转载 2012-04-23 20:47:21 · 345 阅读 · 0 评论 -
快速排序算法
快速排序及其分析2011-07-27 14:35 by zabery, 679 visits, 收藏, 编辑前言快速排序的平均情况下是O(nlogn),但是一般都比其他运行时间为O(nlogn)的算法都要快,因为它隐藏的常数因子比较小,但是在最坏情况之下,快速排序的运行时间是O(n2)。快速排序过程快速排序采用的思想是分治思想,就像合并排序算法的思想一样转载 2012-04-09 20:51:02 · 329 阅读 · 0 评论 -
五大常用算法之一:分治算法
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的转载 2012-04-09 20:33:47 · 241 阅读 · 0 评论 -
KMP模式匹配算法
二.KMP匹配算法还是相同的例子,在S=”abcabcabdabba”中查找T=”abcabd”,如果使用KMP匹配算法,当第一次搜索到S[5] 和T[5]不等后,S下标不是回溯到1,T下标也不是回溯到开始,而是根据T中T[5]==’d’的模式函数值(next[5]=2,为什么?后面讲),直接比较S[5] 和T[2]是否相等,因为相等,S和T的下标同时增加;因为又相等,S和T的下标又同时增加。转载 2012-04-09 21:19:52 · 447 阅读 · 0 评论 -
五大常用算法之二:动态规划算法
一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能转载 2012-04-09 20:34:46 · 288 阅读 · 0 评论 -
五大常用算法之四:回溯法
1、概念 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。转载 2012-04-09 20:36:18 · 232 阅读 · 0 评论 -
五大常用算法之三:贪心算法
贪心算法一、基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前转载 2012-04-09 20:35:33 · 384 阅读 · 0 评论 -
迪杰斯特拉算法
个人总结Dijkstra算法的要点总结:1.该算法需要两个重要的数据结合结构,集合S、T,S集合中存放已经找到最短路径的节点,T集合中则为S集合的补集,为还未找到阻断路径的节点集合2.算法开始时将源点o放入S集合,并初始化各节点到源点的最短路径,如果之间不相通,距离为无穷大,否则,当前最短路径为到源点o的直接距离3.整个算法过程为不断从T集合寻找当前最短路径的节点,转载 2012-04-09 21:15:17 · 2187 阅读 · 0 评论 -
常用算法的时间复杂度分析
常用的排序算法的时间复杂度和空间复杂度排序法最差时间分析平均时间复杂度稳定度空间复杂度冒泡排序O(n2)O(n2)稳定O(1)快速排序O(n2)O(n*log2n)不稳定O(log2n)~O(n)选择排序O(n2)O(n2)稳定O(1)二叉树排序O(n转载 2012-04-30 15:58:09 · 826 阅读 · 1 评论