
算法设计与分析
路小舟!o
但愿人长久的路小舟
展开
-
算法设计与分析——第6章 回溯算法
回溯法的基本思想子集树与排列树回溯算法搜索子集树的伪代码//形参t为树的深度,根为1void backtrack (int t){ if (t>n) update(x); else for (int i=0; i<=1; i++) //每个结点只有两个子树 { x[t]=i; //即0/1 if (constraint(t) && bound(t)) backtr...原创 2020-05-19 11:56:52 · 456 阅读 · 0 评论 -
算法设计与分析——第5章 贪心算法
1原创 2020-05-18 16:50:48 · 348 阅读 · 0 评论 -
算法设计与分析——第4章 动态规划
一、动态规划的基本思想二、设计动态规划法的步骤三、动态规划问题的特征矩阵连乘积问题分析最优解的结构分析最优解的结构动态规划算法的基本要素最长公共子序列最大子段和¢给定由n个整数(包含负整数)组成的序列a1,a2,...,an,求该序列子段和的最大值。l当所有整数均为负值时定义其最大子段和为0。¢所求的最优值为:ll例如,当(a1,a2, ……a7,a8)=(1,-3, 7,8,-4,12,原创 2020-05-14 20:53:39 · 275 阅读 · 0 评论 -
算法设计与分析——第4章 分治法
分治法的设计思想 将一个难以直接解决的大问题,划分成一些规模较小的子问题,以便各个击破,分而治之。更一般地说,将要求解的原问题划分成k个较小规模的子问题,对这k个子问题分别求解。如果子问题的规模仍然不够小,则再将每个子问题划分为k个规模更小的子问题,如此分解下去,直到问题规模足够小,很容易求出其解为止,再将子问题的解合并为一个更大规模的问题的解,自底向上逐步求出原问题的解。 分治法的典型情况分治法的求解过程一般来说,分治法的求解过程由以下三个阶段组成: (1)划分:既然是分治,当..原创 2020-05-14 20:23:18 · 546 阅读 · 0 评论 -
算法设计与分析——第3章 递归与分治策略
递归算法¢程序直接或间接调用自身的编程技巧称为递归算法(Recursion)。¢一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。¢递归需要有边界条件、递归前进段和递归返回段。l当边界条件不满足时,递归前进;l当边界条件满足时,递归返回。l注意:在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出口,原创 2020-05-10 16:54:41 · 692 阅读 · 0 评论 -
算法设计与分析——第二章_递推算法
递推法是一种重要的数学方法,在数学的各个领域中都有广泛的运用,也是计算机用于数值计算的一个重要算法。这种算法特点是:一个问题的求解需一系列的计算,在已知条件和所求问题之间总存在着某种相互联系的关系,在计算时,如果可以找到前后过程之间的数量关系(即递推式),那么,从问题出发逐步推到已知条件,此种方法叫逆推。无论顺推还是逆推,其关键是要找到递推式。这种处理问题的方法能使复杂运算化为若干步重复的简单运算,充分发挥出计算机擅长于重复处理的特点。 递推算法的首要问题是得到相邻的数据项间的关系(即递推关系)。递原创 2020-05-10 16:40:32 · 632 阅读 · 0 评论 -
算法设计与分析——第一章绪论
算法(Algorithm):对特定问题求解步骤的一种描述,是指令的有限序列。算法的五大特性:⑴ 输入:一个算法有零个或多个输入。⑵ 输出:一个算法有一个或多个输出。⑶ 有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。⑷ 确定性:算法中的每一条指令必须有确切的含义,对于相同的输入只能得到相同的输出。⑸ 可行性:算法描述的操作可以通过已经实现的基本操作执行有限次来实现。算法的描述方法 ⑴ 自然语言优点:容易理解缺点:冗长、二义性使用方法...原创 2020-05-10 16:27:00 · 324 阅读 · 0 评论