摘要: 回溯法是一种类似于穷举的解决方式 思路:遍历所有可选择元素或者数据,如果当前选择不符合问题要求就会产生回溯,即抛弃当前的选择回到上一个状态并进行其他的选择。 回溯法的两个例子 装载问题: 有n个集装箱装入载重量为W的轮船,第i个集装箱的重量为w[i],要求轮船装的质量最多,在装载质量相同的情况下,要 阅读全文
posted @ 2017-06-04 18:16 _春华秋实 阅读(187) 评论(0) 推荐(0)
摘要: 贪心算法:分阶段的工作,在每个阶段做出当前最好的选择,从而希望得到结果是最好或最优的算法。 贪心算法与动态规划的不同在于它对每个子问题的解决方案都做出选择,不能回退。动态规划则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能。 任务调度问题 这是一个经典简单的贪心问题,只是题目有点长 阅读全文
posted @ 2017-06-04 17:34 _春华秋实 阅读(175) 评论(0) 推荐(0)
摘要: 分治算法:设计算法的另一种常用技巧, 由两部分组成: 分(divide): 将大的问题拆分成小问题; 治(conquer):从子问题中得到原问题的解。 分治算法与递归算法: 递归是程序一种特殊的函数调用,不是使用了递归就是分治算法,比如平衡二叉树的搜素,只是使用了递归这种思想。另一方面递归是实现分治 阅读全文
posted @ 2017-06-04 16:51 _春华秋实 阅读(39) 评论(0) 推荐(0)
摘要: 穷举法也称为枚举法、暴力法,通过搜索所有的解空间得到问题的解。 优点:逻辑简单,编写程序简单、可以解决小规模的问题。 缺点:效率不高。 列一下自己在学习算法的时候总结的有代表性的题目, 问题描述 如果一个序列满足下面的性质,我们就将它称为摆动序列: 1. 序列中的所有数都是不大于k的正整数; 2. 阅读全文
posted @ 2017-06-04 15:56 _春华秋实 阅读(1022) 评论(0) 推荐(0)