经典算法
文章平均质量分 70
say_haha
菜鸟
展开
-
五大常用算法之五:分支限界法
分支限界法一、基本描述 类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法。但在一般情况下,分支限界法与回溯法的求解目标不同。回溯法的求解目标是找出T中满足约束条件的所有解,而分支限界法的求解目标则是找出满足约束条件的一个解,或是在满足约束条件的解中找出使某一目标函数值达到极大或极小的解,即在某种意义下的最优解。 (1)分支搜索算法 所谓“分转载 2016-02-25 15:57:54 · 411 阅读 · 0 评论 -
最长公共子序列与最长公共子串(Longest Common Subsequence, LCS)
最长公共子序列与最长公共子串 http://www.cnblogs.com/en-heng/p/3963803.html动态规划算法解LCS问题 http://blog.csdn.net/v_JULY_v/article/details/61102691. 问题描述子串应该比较好理解,至于什么是子序列,这里给出一个例子:有两个母串cnblogsbel原创 2017-04-08 23:20:06 · 622 阅读 · 0 评论 -
字符串匹配算法KMP算法
字符串匹配算法方法1 是使用暴力方法方法2 是使用KMP算法import java.util.Scanner;/** * @author xiaohao * @date 创建时间:Jul 29, 2017 4:05:17 PM * @version 1.0 */public class SubstringSearch { public static v原创 2017-07-29 17:01:57 · 399 阅读 · 0 评论 -
最长回文子串manacher算法
最长回文子串子串的含义是:在原串中连续出现的字符串片段。回文的含义是:正着看和倒着看相同,如abba和yyxyy。基础题:给出一个长度不超过1000的字符串,判断它是不是回文(顺读,逆读均相同)的。https://www.nowcoder.com/practice/df00c27320b24278b9c25f6bb1e2f3b8?tpId=69&&tqId=2967原创 2017-08-08 16:36:39 · 318 阅读 · 0 评论 -
动态规划算法
学习动态规划 附上原文地址:[http://www.cnblogs.com/sdjl/articles/1274312.html](http://www.cnblogs.com/sdjl/articles/1274312.html) 参考:教你彻底学会动态规划——入门篇:[http://blog.csdn.net/baidu_28312631/article/details/474187转载 2017-03-13 15:38:15 · 247 阅读 · 0 评论 -
五大常用算法之二:动态规划算法
一、基本概念 动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略 基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能转载 2016-02-25 15:50:03 · 237 阅读 · 0 评论 -
五大常用算法之四:回溯法
1、概念 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。 回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 许多复杂的转载 2016-02-25 15:52:44 · 259 阅读 · 0 评论 -
五大常用算法之一:分治算法
分治算法一、基本概念 在计算机科学中,分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。这个技巧是很多高效算法的基础,如排序算法(快速排序,归并排序),傅立叶变换(快速傅立叶变换)…… 任何一个可以用计算机求解的转载 2016-02-25 15:56:01 · 529 阅读 · 0 评论 -
五大常用算法之三:贪心算法
贪心算法一、基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。 贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无后效性,即某个状态以后的过程不会影响以前的状态,只与当前转载 2016-02-25 15:57:21 · 311 阅读 · 0 评论 -
数据结构——八大排序算法理解
时间复杂度空间复杂度稳定性选择类排序简单选择排序nlogn1不稳定堆排序nlogn1不稳定交换类排序冒泡排序n21稳定快速排序nlognnl原创 2017-04-01 16:39:04 · 688 阅读 · 0 评论