算法设计与分析期末备考知识点总结.docx

上传人:b****4 文档编号:4243697 上传时间:2022-11-28 格式:DOCX 页数:13 大小:998.86KB
下载 相关 举报
算法设计与分析期末备考知识点总结.docx_第1页
第1页 / 共13页
算法设计与分析期末备考知识点总结.docx_第2页
第2页 / 共13页
算法设计与分析期末备考知识点总结.docx_第3页
第3页 / 共13页
算法设计与分析期末备考知识点总结.docx_第4页
第4页 / 共13页
算法设计与分析期末备考知识点总结.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

算法设计与分析期末备考知识点总结.docx

《算法设计与分析期末备考知识点总结.docx》由会员分享,可在线阅读,更多相关《算法设计与分析期末备考知识点总结.docx(13页珍藏版)》请在冰豆网上搜索。

算法设计与分析期末备考知识点总结.docx

算法设计与分析期末备考知识点总结

●通俗地讲,算法是解决问题的方法,严格地说,算法是对特定问题求解步骤的一种描述,是指令的有限序列。

●算法还必须满足一下五个重要特性:

输入、输出、有穷性、确定性、可行性。

●程序(Program)是对一个算法使用某种程序设计语言的具体实现,原则上,算法可以用任何一种程序设计语言来实现。

什么是算法的计算复杂性?

●算法分析指的是对算法所需要的两种计算机资源——时间和空间(时间复杂性和空间复杂性进行估算,所需要的资源越多,该算法的复杂性就越高。

●表示计算复杂性的O你掌握了?

若存在两个正的常数c和n0,对于任意n≥n0,都有T(n)≤c×f(n),则称T(n)=O(f(n))(或称算法在O(f(n))中)。

我们主要介绍了哪几种算法设计方法?

分治法:

将一个难以直接解决的大问题,分割成一些规模较小的子问题,以便各个击破,分而治之。

减治法:

减治法在将原问题分解为若干个子问题后,利用了规模为n的原问题的解与较小规模(通常是n/2)的子问题的解之间的关系,这种关系通常表现为:

(1)原问题的解只存在于其中一个较小规模的子问题中;

(2)原问题的解与其中一个较小规模的解之间存在某种对应关系。

由于原问题的解与较小规模的子问题的解之间存在这种关系,所以,只需求解其中一个较小规模的子问题就可以得到原问题的解。

动态规划法、贪心算法、回溯算法、概率

RAM程序

分治法------合并排序

设算法4.3对n个元素排序的时间复杂性为T(n),则该二路归并排序算法存在如下递推式:

二路归并排序的时间代价是O(nlog2n)。

所需空间只要O(m+n+min(m,n))的空间就够了(假设两个合并串的长度分别为m和n)。

分治法------快速排序

在最好情况下在具有n个记录的序列中,一次划分需要对整个待划分序列扫描一遍,则所需时间为O(n)。

时间复杂度为O(nlog2n)。

在最坏情况下必须经过n-1次递归调用才能把所有记录定位,而且第i趟划分需要经过n-i次关键码的比较才能找到第i个记录的基准位置,因此,总的比较次数为:

时间复杂度为O(n2)

分治法------最大子段

递推式:

算法时间复杂度:

O(nlog2n)

分治法------棋盘覆盖问题

T(k)满足如下递推式:

分治法------循环赛日安排问题

基本语句的执行次数是:

算法的其时间复杂性为O(4k)。

顺序统计问题:

算法1找出n个元素中的第k个最小元素

输入:

从一个有线性序的集合中抽出的n个元素的序列S及一个整数k,1≤k≤n。

输出:

S中的第k个最小元素

算法2

算法2的期望时间是O(n)。

最坏情况O(n2)

减治-----插入排序(手工题)

堆的概念:

n个元素的序列{K1,K2,…..Kn},当且仅当满足

动态规划求解TSP问题

注:

用动态规划解决TSP问题,算法的时间复杂性为O(n22n)。

和蛮力法相比,动态规划法求解TSP问题,把原来的时间复杂性是O(n!

)的排列问题,转化为组合问题,从而降低了算法的时间复杂性,但它仍需要指数时间。

但遗憾的是这一动态规划算法需要O(n2n)的空间。

当n较大时,空间难以满足。

多段图的最短路径算法:

1.For(i=1;i<=n;i++)

COST[i]=0;初始化:

数组cost[n]初始化为最大值,数组path[n]初始化为-1;

2.for(i=n-2;i>=0;i--)

2.1对顶点i的每一个邻接点j,根据

cost[i]=min{cij+cost[j]}(i≤j≤n且顶点j是顶点i的邻接点)计算cost[i];

2.2根据path[i]=使cij+cost[j]最小的j计算path[i];

3.输出最短路径长度cost[0];

4.输出最短路径经过的顶点:

4.1i=0

4.2循环直到path[i]=n-1

4.2.1输出path[i];

4.2.2i=path[i];

最优二叉查找树算法:

最优二叉查找树是以这n个记录构成的二叉查找树中具有最少平均比较次数的二叉查找树,即最小,其中pi是记录ri的查找概率,ci是在二叉查找树中查找ri的比较次数。

 

回溯法----解空间树的动态搜索过程

注:

搜索过程中,采用两种策略避免无效搜索:

1.用约束条件剪去得不到可行解的子树;

2.用目标函数剪去得不到最优解的子树。

例一:

对于n=3的0/1背包问题,三个物品的重量为{20,15,10},价值为{20,30,25},背包容量为25,从图8.2所示的解空间树的根结点开始搜索,搜索过程如下:

(注:

树枝左侧为1,右侧为0,1代表装包,0代表不装包,从上到下每一层代表一个物体)

例二:

对于n=4的TSP问题,解空间树如下:

代价矩阵C如下:

 

1.目标函数初始化为∞;

2.从结点1选择第1棵子树到结点2,表示在图中从顶点1出发;

3.从结点2选择第1棵子树到达结点3,表示在图中从顶点1到顶点2,依代价矩阵可知路径长度为3;

4.从结点3选择第1棵子树到达结点4,表示在图中从顶点2到顶点3,依代价矩阵可知路径长度为3+2=5;

5.从结点4选择唯一的一棵子树到结点5,表示在图中从顶点3到顶点4,路径长度为5+2=7,结点5是叶子结点,找到了一个可行解,路径为1→2→3→4→1,路径长度为7+3=10,目标函数值10成为新的下界,也就是目前的最优解;

6.从结点5回溯到结点4,再回溯到结点3,选择结点3的第2棵子树到结点6,表示在图中从顶点2到顶点4,路径长度为3+8=11,超过目标函数值10,因此,对以结点6为根的子树实行剪枝;

搜索后的结果图:

 

回溯法----图着色问题的算法

用m种颜色为一个具有n个顶点的无向图着色

设数组color[n]表示顶点的着色情况,回溯法求解m着色问题的算法如下:

 

回溯法----n皇后问题的算法

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1