算法设计与分析
文章平均质量分 84
starter_zheng
这个作者很懒,什么都没留下…
展开
-
算法设计与分析 —— 排列问题
排列问题设计一个递归算法生成n个元素r1,r2,...,rn{r_1,r_2,...,r_n}r1,r2,...,rn的全排列设R=r1,r2,...,rnR={r_1,r_2,...,r_n}R=r1,r2,...,rn是要进行排列的n个元素,Ri=R−riR_i=R-{r_i}Ri=R−ri。集合XXX中元素的全排列记为perm(X)perm(X)perm(X)(ri...原创 2018-10-14 16:01:10 · 5682 阅读 · 0 评论 -
算法分析与设计 —— NP完全性理论
确定性算法:整个执行过程中每一步都只有一个选择,则称A是确定性算法。对同样的输入,输出结果一定相同。非确定性算法:在每一时刻,根据当时的状态和输入,若机器有多个动作可供选择,第一个获得结束的成功选择使算法终止,此时称算法为非确定性的。P类问题用一个确定性算法在多项式时间内可解的问题。NP类问题能在多项式时间内验证得出一个正确解的问题。举例:对于哈密尔顿回路问题,如果给出一个任意的...原创 2018-10-22 10:26:31 · 771 阅读 · 0 评论 -
算法设计与分析 —— 整数划分问题
一、递归的概念递归算法:直接或间接调用自身的算法称为递归算法递归函数:用函数自身给出定义的函数反复应用分治手段,可以使子问题与原问题类型一致而其规模却不断缩小,最终使子问题缩小到很容易直接求出其解。边界条件和递归方程是递归函数的两个要素,递归函数只有具备了这两个要素,才能在有限次计算后得出结果。排列问题设计一个递归算法生成n个元素r1,r2,...,rn{r_1,r_2,.....原创 2018-10-22 14:35:23 · 4052 阅读 · 0 评论 -
算法设计与分析 —— 算法的复杂度分析
什么是算法的复杂度(1)算法复杂度即算法所需要的计算机资源(2)算法的复杂度可分为算法的时间复杂度 T(n)T(n)T(n) 和算法的空间复杂度 S(n)S(n)S(n),其中 nnn 是问题的规模(输入大小)算法的时间复杂度时间复杂度就是函数中基本操作所执行的次数,记为T(n)T(n)T(n),可分为:(1)最坏情况下的时间复杂度:Tmax(n)=max{T(l)∣size(l)=n}...原创 2018-10-21 23:18:42 · 2979 阅读 · 0 评论 -
动态规划 —— 01背包
设计动态规划算法的步骤(1)找出最优解的性质,并刻画其结构特征(2)递归地定义最优值(3)以自底向上的方式计算出最优值(4)根据计算最优值时得到的信息,构造最优解动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题但是经分解得到的子问题往往不是互相独立的,不同子问题的数目常常只有多项式量级。在用分治法求解时,有些子问题被重复计算了许多次。如果能够保存已解决的子问题的...原创 2018-11-04 21:06:29 · 404 阅读 · 0 评论