算法设计与分析
邵光亮
要为自己喜欢的事情不留余力
展开
-
算法设计与分析——DP
一. 本质递归转递推。二. 前提问题具有最优子结构性质。如果问题的最优解所包含的 子问题的解也是最优的,我们就称该问题具有最优子结 构性质。无后效性。当前的若干个状态值一旦确定,则此后过程 的演变就只和这若干个状态的值有关,和之前是采取哪 种手段或经过哪条路径演变到当前的这若干个状态,没有关系。三.动规解题的一般思路将原问题分解为子问题即将原问题的规模缩小,得到该问题的子问题,再将子...原创 2020-05-08 09:57:18 · 141973 阅读 · 0 评论 -
算法设计与分析——搜索
DFS:dfs算法是一个对连通图进行遍历的算法。它的思想是从一个被选定的点出发一条路走到底,如果得不到目的解,那就返回到上一个节点,然后换一条路继续走到底,直到找到目的解返回或者全部遍历完返回一个事先定好的值。dfs一般借用递归完成整个算法的构造。bfs:bfs算法是也一个对连通图进行遍历的算法。它的思想是从一个被选定的点出发;然后从这个点的所有方向每次只走一步的走的到底(即其中一个方向走完...原创 2020-05-08 09:52:09 · 141607 阅读 · 0 评论 -
算法设计与分析——贪心
什么是贪心算法贪心算法是一种对某些求解最优问题的更为简单的方法。贪心算法每次都考虑一个局部最优解,总是考虑当前状态下的最优的选择。所以贪心算法并不是对每个问题都有最优解的,但是某些问题,比如单源最短路径,最小生成树问题。(关键是贪心策略的选择,选择的贪心策略必须具备无后效性,即某个状态以前的过程不会影响以后的状态,只与当前状态有关)贪心算法的基本要素贪心选择:所求问题的整体最优解可以通过一系...原创 2020-05-08 09:46:37 · 141916 阅读 · 0 评论 -
算法设计与分析——分治法
通俗的来说:就是把一个问题分解成为大小相同的k个子问题是比较不错的。(事实上这种使子问题大致相同的做法是一种自平衡子问题的思想)。定义:分治法的思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立且与原问题相同。解决方法:我们可以递归的解决这些子问题,然后将这些小的子问题和原问题合并,进而各个击破,达到解决整个原问题的目的!分治算法分解为多少个子问题比较的合适呢?其...原创 2020-05-08 08:51:57 · 141562 阅读 · 0 评论 -
算法设计与分析—— 绪论
算法理论的两大论题:算法设计——对于一个问题如何设计一个有效的算法算法分析——如何评价或判断一个算法的优劣算法及其重要特性算法(Algorithm):对特定问题求解步骤的一种描述,是指令的有限序列。算法的五大特性:3. 输入:一个算法有零个或多个输入。-输出:一个算法有一个或多个输出。-有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。-确定性:算法中...原创 2020-05-08 08:47:03 · 141518 阅读 · 0 评论