算法设计与分析
文章平均质量分 91
ccchenxi
努力过的时光才不会后悔
展开
-
算法设计与分析第3章 贪心算法
第4章 贪心算法贪心算法总是作出在当前看来最好的选择。也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。贪心算法的基本要素1、贪心选择性质所谓贪心选择性质是指所求问题的整体最优解可以通过一系列局部最优的选择,即贪心选择来达到。这是贪心算法可行的第一个基本要素,也是贪心算法与动态规划算法的主要区别。动态规划算法通常以自底向上的方式解各子问题,而贪心算法则通常...原创 2018-10-11 17:52:32 · 2558 阅读 · 0 评论 -
算法设计与分析第4章 动态规划(一)【背包问题】
第3章动态规划(一)【背包问题】基本思想:动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,但是经分解得到的子问题往往不是互相独立的。不同子问题的数目常常只有多项式量级。在用分治法求解时,有些子问题被重复计算了许多次。如果能够保存已解决的子问题的答案,而在需要时再找出已求得的答案,就可以避免大量重复计算,从而得到多项式时间算法。基本要素:1.最优子结构性质问题的最优...原创 2018-10-13 22:33:56 · 2564 阅读 · 0 评论 -
算法设计与分析第1章 算法概述
第1章 算法概述(穷举算法)重要人物:Alan Turing(图灵机)、Donald Knuth(TEX系统)算法:解决问题的一种方法或一个过程特性:有穷性(Finiteness)、确定性(Definiteness)、可行性(effectiveness)、输入(Input)、输出(Output)程序:算法+数据结构计算时间的渐进表示:多项式时间算法(polynomial time al...原创 2018-10-09 20:54:53 · 328 阅读 · 0 评论 -
算法设计与分析第2章 递归与分治策略
第2章 递归与分治策略2.1 递归算法递归算法:直接或间接地调用自身的算法。递归函数:用函数自身给出定义的函数。两个要素:边界条件、递归方程优点:结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性。缺点:运行效率较低,无论是耗费的计算时间还是占用的存储空间都比非递归算法要多。解决方法:在递归算法中消除递归调用,使其转化为非递归算法。1、采用一个用户定义的栈来模拟系统的递归调用...原创 2018-10-10 21:42:00 · 972 阅读 · 0 评论 -
算法设计与分析第4章 动态规划(二)【DP序列问题】
第3章 动态规划(二)【DP序列问题】3.2 DP序列问题(51nod的动态规划教程很不错,讲解很详细,以下分析来自51nod)1.矩阵取数问题给定一个m行n列的矩阵,矩阵每个元素是一个正整数,你现在在左上角(第一行第一列),你需要走到右下角(第m行,第n列),每次只能朝右或者下走到相邻的位置,不能走出矩阵。走过的数的总和作为你的得分,求最大的得分。分析:从起点到终点的最优路径上经过了...原创 2018-11-01 15:55:25 · 812 阅读 · 0 评论 -
算法设计与分析第5章 回溯法(一)【回溯法】
第5章 回溯法5.1 回溯法1.回溯法的提出 有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法。2. 问题的解空间(1)问题的解向量:回溯法希望一个问题的解能够表示成一个n元式(x1,x2,…,xn)的形式。(2)显约束:对分量xi的取值限定。(3)隐约束:为满足问题的解而对不同分量之间施加的约束。(4)解空间:对于问题的一个实例,解向...原创 2018-11-16 11:37:40 · 4760 阅读 · 0 评论 -
算法设计与分析第5章 回溯法(二)【回溯法应用】
第5章 回溯法5.2 应用范例1.0-1背包问题有n件物品和一个容量为c的背包。第i件物品的重量是w[i],价值是p[i]。求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最大。·算法设计:(1)解空间:子集树(2)算法调用递归函数Backtrack(3)可行性约束函数:(4)上界函数:当前包内物品重量(cw)+物品的选中情况(x[i])*物品的重量(w[i...原创 2018-11-16 18:31:36 · 1569 阅读 · 0 评论