算法设计复习题

合集下载

算法设计与分析复习题目及答案详解

算法设计与分析复习题目及答案详解

算法设计与分析复习题目及答案详解分治法1、二分搜索算法是利用(分治策略)实现的算法。

9.实现循环赛日程表利用的算法是(分治策略)27、Straen矩阵乘法是利用(分治策略)实现的算法。

34.实现合并排序利用的算法是(分治策略)。

实现大整数的乘法是利用的算法(分治策略)。

17.实现棋盘覆盖算法利用的算法是(分治法)。

29、使用分治法求解不需要满足的条件是(子问题必须是一样的)。

不可以使用分治法求解的是(0/1背包问题)。

动态规划下列不是动态规划算法基本步骤的是(构造最优解)下列是动态规划算法基本要素的是(子问题重叠性质)。

下列算法中通常以自底向上的方式求解最优解的是(动态规划法)备忘录方法是那种算法的变形。

(动态规划法)最长公共子序列算法利用的算法是(动态规划法)。

矩阵连乘问题的算法可由(动态规划算法B)设计实现。

实现最大子段和利用的算法是(动态规划法)。

贪心算法能解决的问题:单源最短路径问题,最小花费生成树问题,背包问题,活动安排问题,不能解决的问题:N皇后问题,0/1背包问题是贪心算法的基本要素的是(贪心选择性质和最优子结构性质)。

回溯法回溯法解旅行售货员问题时的解空间树是(排列树)。

剪枝函数是回溯法中为避免无效搜索采取的策略回溯法的效率不依赖于下列哪些因素(确定解空间的时间)分支限界法最大效益优先是(分支界限法)的一搜索方式。

分支限界法解最大团问题时,活结点表的组织形式是(最大堆)。

分支限界法解旅行售货员问题时,活结点表的组织形式是(最小堆)优先队列式分支限界法选取扩展结点的原则是(结点的优先级)在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是(分支限界法).从活结点表中选择下一个扩展结点的不同方式将导致不同的分支限界法,以下除(栈式分支限界法)之外都是最常见的方式.(1)队列式(FIFO)分支限界法:按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。

(2)优先队列式分支限界法:按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。

《算法与程序设计》复习题

《算法与程序设计》复习题

算法与程序设计一、选择题部分(100题)一章一节:了解计算机解决问题的过程1.用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?()A、分析问题B、设计算法C、编写程序D、调试程序答案:B2.学校要举行运动会,请你设计一个能够对运动员分数自动排序的软件,如果要设计此软件,以下最好的方法和步骤是()。

A、分析问题,编写程序,设计算法,调试程序B、设计算法,编写程序,提出问题,调试程序C、提出问题,设计算法,编写程序,调试程序D、设计算法,提出问题,编写程序,调试程序答案:C3.下列步骤不属于软件开发过程的是()。

A、任务分析与系统设计B、软件的销售C、代码编写与测试D、软件测试与维护答案:B4.用计算机解决问题的步骤一般为()①编写程序②设计算法③分析问题④调试程序。

A.①②③④ B.③④①② C.②③①④ D.③②①④答案:D5.以下描述中最适合用计算机编程来处理的是()。

A、确定放学回家的路线B、计算某个同学期中考试各科成绩总分C、计算100以内的奇数平方和D、在因特网上查找自己喜欢的歌曲答案:C6.以下问题中最适合用计算机编程处理的是()。

A、制定本学期的学习计划B、计算正方形的周长C、创作一首歌曲D、求1000以内的所有素数答案:D7.由“上车—掏钱—投币”所描述的问题是()。

A、无人售票车投币过程B、乘公交车过程C、上车过程D、下车过程答案:A一章二节:算法和算法描述8.下面说法正确的是()。

A、算法+数据结构=程序B、算法就是程序C、数据结构就是程序D、算法包括数据结构答案:A9.算法描述可以有多种表达方法,下面哪些方法不可以描述“水仙花数问题”的算法()。

A.自然语言B.流程图C.伪代码D.机器语言答案:D10.下面关于算法的说法错误的是()。

A、算法必须有输出B、算法就是程序C、算法不一定有输入D、算法必须在有限步执行后能结束答案:B11.算法的三种基本控制结构是顺序结构、分支结构和()。

计算机算法与设计复习题(含答案)

计算机算法与设计复习题(含答案)

1、一个算法的优劣可以用(时间复杂度)与(空间复杂度)与来衡量。

2、回溯法在问题的解空间中,按(深度优先方式)从根结点出发搜索解空间树。

3、直接或间接地调用自身的算法称为(递归算法)。

4、 记号在算法复杂性的表示法中表示(渐进确界或紧致界)。

5、在分治法中,使子问题规模大致相等的做法是出自一种(平衡(banlancing)子问题)的思想。

6、动态规划算法适用于解(具有某种最优性质)问题。

7、贪心算法做出的选择只是(在某种意义上的局部)最优选择。

8、最优子结构性质的含义是(问题的最优解包含其子问题的最优解)。

9、回溯法按(深度优先)策略从根结点出发搜索解空间树。

10、拉斯维加斯算法找到的解一定是(正确解)。

11、按照符号O的定义O(f)+O(g)等于O(max{f(n),g(n)})。

12、二分搜索技术是运用(分治)策略的典型例子。

13、动态规划算法中,通常不同子问题的个数随问题规模呈(多项式)级增长。

14、(最优子结构性质)和(子问题重叠性质)是采用动态规划算法的两个基本要素。

15、(最优子结构性质)和(贪心选择性质)是贪心算法的基本要素。

16、(选择能产生最优解的贪心准则)是设计贪心算法的核心问题。

17、分支限界法常以(广度优先)或(以最小耗费(最大效益)优先)的方式搜索问题的解空间树。

18、贪心选择性质是指所求问题的整体最优解可以通过一系列(局部最优)的选择,即贪心选择达到。

19、按照活结点表的组织方式的不同,分支限界法包括(队列式(FIFO)分支限界法)和(优先队列式分支限界法)两种形式。

20、如果对于同一实例,蒙特卡洛算法不会给出两个不同的正确解答,则称该蒙特卡洛算法是(一致的)。

21、哈夫曼编码可利用(贪心法)算法实现。

22概率算法有数值概率算法,蒙特卡罗(Monte Carlo)算法,拉斯维加斯(Las Vegas)算法和舍伍德(Sherwood)算法23以自顶向下的方式求解最优解的有(贪心算法)24、下列算法中通常以自顶向下的方式求解最优解的是(C)。

电大计算机本科_算法设计与分析(期末考试复习题含答案)

电大计算机本科_算法设计与分析(期末考试复习题含答案)

1、二分搜索算法是利用( A )实现的算法。

A、分治策略B、动态规划法C、贪心法D、回溯法2、下列不是动态规划算法基本步骤的是( A )。

A、找出最优解的性质B、构造最优解C、算出最优解D、定义最优解3、最大效益优先是( A )的一搜索方式。

A、分支界限法B、动态规划法C、贪心法D、回溯法4、在下列算法中有时找不到问题解的是( B )。

A、蒙特卡罗算法B、拉斯维加斯算法C、舍伍德算法D、数值概率算法5. 回溯法解旅行售货员问题时的解空间树是( A ).A、子集树B、排列树C、深度优先生成树D、广度优先生成树6.下列算法中通常以自底向上的方式求解最优解的是( B )。

A、备忘录法B、动态规划法C、贪心法D、回溯法7、衡量一个算法好坏的标准是(C )。

A 运行速度快B 占用空间少C 时间复杂度低D 代码短8、以下不可以使用分治法求解的是(D )。

A 棋盘覆盖问题B 选择问题C 归并排序D 0/1背包问题9。

实现循环赛日程表利用的算法是( A ).A、分治策略B、动态规划法C、贪心法D、回溯法10、下列随机算法中运行时有时候成功有时候失败的是(C )A 数值概率算法B 舍伍德算法C 拉斯维加斯算法D 蒙特卡罗算法11.下面不是分支界限法搜索方式的是( D )。

A、广度优先B、最小耗费优先C、最大效益优先D、深度优先12.下列算法中通常以深度优先方式系统搜索问题解的是( D ).A、备忘录法B、动态规划法C、贪心法D、回溯法13.备忘录方法是那种算法的变形。

( B )A、分治法B、动态规划法C、贪心法D、回溯法14.哈弗曼编码的贪心算法所需的计算时间为( B )。

A、O(n2n)B、O(nlogn)C、O(2n)D、O(n)15.分支限界法解最大团问题时,活结点表的组织形式是( B ).A、最小堆B、最大堆C、栈D、数组16.最长公共子序列算法利用的算法是( B )。

A、分支界限法B、动态规划法C、贪心法D、回溯法17.实现棋盘覆盖算法利用的算法是( A ).A、分治法B、动态规划法C、贪心法D、回溯法18.下面是贪心算法的基本要素的是( C )。

太原理工大学软件学院算法设计与分析复习题目及答案

太原理工大学软件学院算法设计与分析复习题目及答案

一、选择题1、二分搜索算法是利用〔 A 〕实现的算法。

A、分治策略B、动态规划法C、贪心法D、回溯法2、以下不是动态规划算法根本步骤的是〔 A 〕。

A、找出最优解的性质B、构造最优解C、算出最优解D、定义最优解3、最大效益优先是〔 A 〕的搜索方式。

A、分支界限法B、动态规划法C、贪心法D、回溯法4. 回溯法解旅行售货员问题时的解空间树是〔 B 〕。

A、子集树B、排列树C、深度优先生成树D、广度优先生成树5.以下算法常以自底向上的方式求解最优解的是〔 B 〕。

A、备忘录法B、动态规划法C、贪心法D、回溯法6、衡量一个算法好坏的标准是〔C 〕。

A 运行速度快B 占用空间少C 时间复杂度低D 代码短7、以下不可以使用分治法求解的是〔D 〕。

A 棋盘覆盖问题B 选择问题C 归并排序D 0/1背包问题8. 实现循环赛日程表利用的算法是〔 A 〕。

A、分治策略B、动态规划法C、贪心法D、回溯法9.下面不是分支界限法搜索方式的是〔 D 〕。

A、广度优先B、最小消耗优先C、最大效益优先D、深度优先10.以下算法常以深度优先方式系统搜索问题解的是〔 D 〕。

A、备忘录法B、动态规划法C、贪心法D、回溯法11.备忘录方法是那种算法的变形。

〔 B 〕A、分治法B、动态规划法C、贪心法D、回溯法12.最长公共子序列算法利用的算法是〔 B 〕。

A、分支界限法B、动态规划法C、贪心法D、回溯法13.实现棋盘覆盖算法利用的算法是〔 A 〕。

A、分治法B、动态规划法C、贪心法D、回溯法14.下面是贪心算法的根本要素的是〔 C 〕。

A、重叠子问题B、构造最优解C、贪心选择性质D、定义最优解15.回溯法的效率不依赖于以下哪些因素〔 D 〕A.满足显约束的值的个数B. 计算约束函数的时间C. 计算限界函数的时间D. 确定解空间的时间16.下面哪种函数是回溯法中为防止无效搜索采取的策略〔 B 〕A.递归函数 B.剪枝函数C.随机数函数 D.搜索函数17.〔 D 〕是贪心算法与动态规划算法的共同点。

算法设计与分析复习题整理 (1)

算法设计与分析复习题整理 (1)

一、基本题:算法:1、程序是算法用某种程序设计语言的具体实现。

2、算法就是一组有穷的序列(规则) ,它们规定了解决某一特定类型问题的一系列运算。

3、算法的复杂性是算法效率的度量,是评价算法优劣的重要依据。

4、算法的“确定性”指的是组成算法的每条指令是清晰的,无歧义的。

5、算法满足的性质:输入、输出、确定性、有限性。

6、衡量一个算法好坏的标准是时间复杂度低。

7、算法运行所需要的计算机资源的量,称为算法复杂性,主要包括时间复杂性和空间复杂性。

8、任何可用计算机求解的问题所需的时间都与其规模有关。

递归与分治:9、递归与分治算法应满足条件:最优子结构性质与子问题独立。

10、分治法的基本思想是首先将待求解问题分解成若干子问题。

11、边界条件与递归方程是递归函数的两个要素。

12、从分治法的一般设计模式可以看出,用它设计出的程序一般是递归算法。

13、将一个难以直接解决的大问题,分解成一些规模较小的相同问题,以便各个击破。

这属于分治法的解决方法。

14、Strassen矩阵乘法是利用分治策略实现的算法。

15、大整数乘积算法是用分治法来设计的。

16、二分搜索算法是利用分治策略实现的算法。

动态规划:17、动态规划算法的两个基本要素是最优子结构性质和重叠子问题性质。

18、下列算法中通常以自底向上的方式求解最优解的是动态规划法。

19、备忘录方法是动态规划算法的变形。

20、最优子结构性质是贪心算法与动态规划算法的共同点。

21、解决0/1背包问题可以使用动态规划、回溯法,其中不需要排序的是动态规划,需要排序的是回溯法。

贪心算法:22、贪心算法总是做出在当前看来最好的选择。

也就是说贪心算法并不从整体最优考虑,它所做出的选择只是在某种意义上的局部最优解。

23、最优子结构性质是贪心算法与动态规划算法的共同点。

24、背包问题的贪心算法所需的计算时间为 O(nlogn) 。

回溯法:25、回溯法中的解空间树结构通常有两种,分别是子集树和排列树。

算法设计与分析期末复习题

算法设计与分析期末复习题

算法设计与分析期末考试复习题1.算法有哪些特点?为什么说一个具备了所有特征的算法,不一定就是使用的算法?2.证明下面的关系成立:(参考例题1.5--1.6)(1)logn!=Θ(nlogn) (2)2n=Θ(2n+1)(3)n!=Θ(n n) (4)5n2-6n=Θ(n2)3.考虑下面的算法:输入:n个元素的数组A输出:按递增顺序排序的数组A1. void sort(int A[],int n)2. {3. int i,j,temp;4. for(i=0;i<n-1;i++)5. for(j=i+1;j<n;j++)6. if(A[j]<A[i]) {7. temp=A[i];8. A[i]=A[j];9. A[j]=temp;10. }11. }(1)什么时候算法所执行的元素赋值的次数最少?最少多少次?(2)什么时候算法所执行的元素赋值的次数最多?最多多少次?4.考虑下面的算法:输入:n个元素的数组A输出:按递增顺序排序的数组A1. void bubblesort(int A[],int n)2. {3. int j,i,sorted;4. i=sorted=0;5. while(i<n-1 && !sorted) {6. sorted=1;7. for(j=n-1;j>i;j--) {8. if(A[j]<A[j-1]) {9. temp=A[j];10. A[j]=A[j-1];11. A[j-1]=temp;12. sorted=0;13. }14. }15. i=i+1;16. }17. }(1)算法所执行的元素比较次数最少是多少次?什么时候达到最少?(2)算法所执行的元素比较次数最多是多少次?什么时候达到最多?(3)算法所执行的元素赋值次数最少是多少次?什么时候达到最少?(4)算法所执行的元素赋值次数最多是多少次?什么时候达到最多?(5)用О、和Ω记号表示算法的运行时间。

算法设计与分析复习题目及答案

算法设计与分析复习题目及答案

分治法1、二分搜索算法是利用(分治策略)实现的算法。

9. 实现循环赛日程表利用的算法是(分治策略)27、Strassen矩阵乘法是利用(分治策略)实现的算法。

34.实现合并排序利用的算法是(分治策略)。

实现大整数的乘法是利用的算法(分治策略)。

17.实现棋盘覆盖算法利用的算法是(分治法)。

29、使用分治法求解不需要满足的条件是(子问题必须是一样的)。

不可以使用分治法求解的是(0/1背包问题)。

动态规划下列不是动态规划算法基本步骤的是(构造最优解)下列是动态规划算法基本要素的是(子问题重叠性质)。

下列算法中通常以自底向上的方式求解最优解的是(动态规划法)备忘录方法是那种算法的变形。

(动态规划法)最长公共子序列算法利用的算法是(动态规划法)。

矩阵连乘问题的算法可由(动态规划算法B)设计实现。

实现最大子段和利用的算法是(动态规划法)。

贪心算法能解决的问题:单源最短路径问题,最小花费生成树问题,背包问题,活动安排问题,不能解决的问题:N皇后问题,0/1背包问题是贪心算法的基本要素的是(贪心选择性质和最优子结构性质)。

回溯法回溯法解旅行售货员问题时的解空间树是(排列树)。

剪枝函数是回溯法中为避免无效搜索采取的策略回溯法的效率不依赖于下列哪些因素(确定解空间的时间)分支限界法最大效益优先是(分支界限法)的一搜索方式。

分支限界法解最大团问题时,活结点表的组织形式是(最大堆)。

分支限界法解旅行售货员问题时,活结点表的组织形式是(最小堆)优先队列式分支限界法选取扩展结点的原则是(结点的优先级)在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是( 分支限界法).从活结点表中选择下一个扩展结点的不同方式将导致不同的分支限界法,以下除( 栈式分支限界法)之外都是最常见的方式.(1)队列式(FIFO)分支限界法:按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。

(2)优先队列式分支限界法:按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。

算法分析与设计复习题及参考答案

算法分析与设计复习题及参考答案

《算法分析与设计》课程复习资料一、名词解释:1.算法2.程序3.递归函数4.子问题的重叠性质5.队列式分支限界法6.多机调度问题7.最小生成树 二、简答题:1.备忘录方法和动态规划算法相比有何异同?简述之。

2.简述回溯法解题的主要步骤。

3.简述动态规划算法求解的基本要素。

4.简述回溯法的基本思想。

5.简要分析在递归算法中消除递归调用,将递归算法转化为非递归算法的方法。

6.简要分析分支限界法与回溯法的异同。

7.简述算法复杂性的概念,算法复杂性度量主要指哪两个方面? 8.贪心算法求解的问题主要具有哪些性质?简述之。

9.分治法的基本思想是什么?合并排序的基本思想是什么?请分别简述之。

10.简述分析贪心算法与动态规划算法的异同。

三、算法编写及算法应用分析题:1.已知有3个物品:(w1,w2,w3)=(12,10,6),(p1,p2,p3)=(15,13,10),背包的容积M=20,根据0-1背包动态规划的递推式求出最优解。

2.按要求完成以下关于排序和查找的问题。

①对数组A={15,29,135,18,32,1,27,25,5},用快速排序方法将其排成递减序。

②请描述递减数组进行二分搜索的基本思想,并给出非递归算法。

③给出上述算法的递归算法。

④使用上述算法对①所得到的结果搜索如下元素,并给出搜索过程:18,31,135。

3.已知1()*()i i k k ij r r A a +=,k =1,2,3,4,5,6,r 1=5,r 2=10,r 3=3,r 4=12,r 5=5,r 6=50,r 7=6,求矩阵链积A 1×A 2×A 3×A 4×A 5×A 6的最佳求积顺序(要求给出计算步骤)。

4.根据分枝限界算法基本过程,求解0-1背包问题。

已知n=3,M=20,(w1,w2,w3)=(12,10,6),(p1,p2,p3)=(15,13,10)。

《算法与程序设计》一、二章基本概念复习题答案

《算法与程序设计》一、二章基本概念复习题答案

《算法与程序设计》一、二章基本概念复习题答案一、单选题(每个3分,共60分)1.下列选项中,不属于计算机程序设计语言的是( C )A.汇编语言B.高级语言C.自然语言D.机器语言2. 关于算法的描述,下列选项中正确的是( B )A.算法本身就是一种程序设计语言B.算法的每一步骤必须有确切的含义C.算法的步骤可以是无穷的D.算法必须有输入3. VB程序中“dim n As Integer”这条语句的作用是( A)A.定义一个变量B.定义一个数据输入方法C.定义一个事件过程D.定义一个数据处理方法4.一个单窗体VB程序的运行界面如下图所示,下列说法正确的是:(C)(1)窗体内有1个按纽(2)窗体内有2个文本框(3)窗体内有3个标签(4)该窗体的标题(Caption)属性值是“加法计算器”A.(3) (4)B.(1)(2)C.(1)(4)D.(2) (3)5. 两个阻值分别为R1、R2的电阻并联后,电路阻值可由公式求解,下面能正确求出R的VB表达式是(A)。

A.R1*R2/(R1+R2)B.R1+R2/(R1*R2)C.(R1+R2)/(R1*R2)D.R1*R2/R1+R26. 关于算法的描述,下列选项中正确的是(D)A.算法只能用流程图来表示B.一个算法的执行步骤可以是无限的C.一个算法,当没有输入时,也没有输出D.一个算法可以没有输入7. 在VB语言中,字符串运算符“+”和“&”的作用是把两个或多个字符串连接成一个字符串。

则表达式"20"+"13"&"20+13"的运算结果是(B )。

'A. “332013”B.”201320+13”C.”201333”D.”3333”8. 下列VB程序运行时(如图所示),在文本框Text1中输入20,在文本框Text2中输入13,单击命令按钮Command1后,文本框Text3中显示的内容是(D)。

算法分析与设计—部分复习题答案

算法分析与设计—部分复习题答案

算法设计与分析复习题1、一个算法应有哪些主要特征?有限性、确定性、输入、输出、可行性2、分治法(Divide and Conquer)与动态规划(Dynamic Programming)有什么不同?分治法是将一个问题划分成一系列独立的子问题,分别处理后将结果组合以得到原问题的答案。

动态规划同样将一个问题划分成一系列子问题进行处理,但当子问题不是互相独立而是互有联系时,动态规划不会重复计算子问题间联系的问题,是更高效的解决办法。

(具体解释太长了这个答案可以得点分)3、试举例说明贪心算法对有的问题是有效的,而对一些问题是无效的。

贪心算法的思想是通过选择局部最优以求得最优解,但某些最优解问题无法由局部最优推出,如0-1 knapsack problem(背包问题,一个能装20斤的背包装入一定商品,要求价值最高)4、求解方程f(n)=f(n-1)+f(n-2),f(1)=f(2)=1。

(斐波那契数列)(证明太复杂了不贴了)k5、求解方程T(n)=2T(n/2)+1,T(1)=1,设n=2。

T(n)=2*(2*T(n/4)+1)+1=2*(2*(T(n/8)+1)+1)+1 推出以下方程且且证明用数学归纳法。

void max_min(int a[],int m, int n, int* min) //运用分治法查找最大值与最小值{ int middle,hmin,gmin; if( m==n ) { * min = a[m]; } else if(m == n-1) { if( a[m] > a[n]) {*min = a[n]; } else { *min =a[m]; } } else { middle = (m+n)/2; max_min(a,m,middle,&gmin); max_min(a,middle+1,n,&hmin); if(gmin < hmin) { *min = gmin; } else { *min= hmin; } } } 6、编写一个Quick Sorting 算法,并分析时间复杂性。

2023人工智能算法设计复习 题集附答案

2023人工智能算法设计复习 题集附答案

2023人工智能算法设计复习题集附答案一、算法复习题1. 请简述什么是算法?算法是一种有序、有限的指令集合,描述了如何在有限时间内解决特定问题或完成特定任务的方法。

2. 请解释什么是时间复杂度和空间复杂度?时间复杂度指的是算法运行所需的时间量度,通常用大O表示法表示。

空间复杂度指的是算法运行所需的额外空间量度,同样用大O表示法表示。

3. 请列举几种常见的排序算法及其时间复杂度。

- 冒泡排序(Bubble Sort):时间复杂度为O(n^2)- 插入排序(Insertion Sort):时间复杂度为O(n^2)- 选择排序(Selection Sort):时间复杂度为O(n^2)- 快速排序(Quick Sort):时间复杂度为O(nlogn)- 归并排序(Merge Sort):时间复杂度为O(nlogn)4. 请解释什么是递归算法,并给出一个递归算法的例子。

递归算法是指在解决问题的过程中调用自身的算法。

一个典型的例子是计算斐波那契数列的值。

斐波那契数列中每个数的值都是前两个数之和,因此可以使用递归算法来计算。

5. 请简述动态规划算法的思想。

动态规划是一种将问题分解成子问题并重复利用已经解决过的子问题来解决整体问题的算法思想。

动态规划算法通常使用一个表格格来存储已解决的子问题的解,避免重复计算。

二、算法设计题1. 设计一个算法,计算出给定数组中的最大连续子数组之和。

算法思路:- 初始化两个变量:current_max记录当前连续子数组的最大和,global_max记录整个数组中的最大和,初始值都设为第一个元素的值。

- 从数组的第二个元素开始遍历。

- 对于每一个元素,如果将其加入当前连续子数组后的和比元素本身大,则将其加入;否则,以当前元素作为起点重新开始统计连续子数组的和。

- 在遍历过程中,不断更新current_max和global_max的值,最终得到整个数组中的最大连续子数组和。

2. 设计一个算法,找出给定数组中的两个元素之间的最大差值。

《算法分析与设计》期末考试复习题纲(完整版)

《算法分析与设计》期末考试复习题纲(完整版)

《算法分析与设计》期末复习题一、选择题1.算法必须具备输入、输出和( D )等4个特性。

A.可行性和安全性 B.确定性和易读性C.有穷性和安全性 D.有穷性和确定性2.算法分析中,记号O表示( B ),记号Ω表示( A )A.渐进下界B.渐进上界C.非紧上界D.紧渐进界3.假设某算法在输入规模为n时的计算时间为T(n)=3*2^n。

在某台计算机上实现并完成概算法的时间为t秒。

现有另一台计算机,其运行速度为第一台的64倍,那么在这台新机器上用同一算法在t秒内能解输入规模为多大的问题?( B )解题方法:3*2^n*64=3*2^xA.n+8 B.n+6C.n+7 D.n+54.设问题规模为N时,某递归算法的时间复杂度记为T(N),已知T(1)=1,T(N)=2T(N/2)+N/2,用O表示的时间复杂度为( C )。

A.O(logN) B.O(N)C.O(NlogN) D.O(N²logN)5.直接或间接调用自身的算法称为( B )。

A.贪心算法 B.递归算法C.迭代算法 D.回溯法6.Fibonacci数列中,第4个和第11个数分别是( D )。

A.5,89 B.3,89C.5,144 D.3,1447.在有8个顶点的凸多边形的三角剖分中,恰有( B )。

A.6条弦和7个三角形 B.5条弦和6个三角形C.6条弦和6个三角形 D.5条弦和5个三角形8.一个问题可用动态规划算法或贪心算法求解的关键特征是问题的( B )。

A.重叠子问题 B.最优子结构性质C.贪心选择性质 D.定义最优解9.下列哪个问题不用贪心法求解( C )。

A.哈夫曼编码问题 B.单源最短路径问题C.最大团问题 D.最小生成树问题10.下列算法中通常以自底向上的方式求解最优解的是( B )。

A.备忘录法 B.动态规划法C.贪心法 D.回溯法11.下列算法中不能解决0/1背包问题的是( A )。

A.贪心法 B.动态规划C.回溯法 D.分支限界法12.下列哪个问题可以用贪心算法求解( D )。

计算机算法设计与分析期终考试复习题

计算机算法设计与分析期终考试复习题

计算机算法设计与分析复习题一、填空题1、一个算法复杂性的高低体现在计算机运行该算法所需的时间和存储器资源上,因此算法的复杂性有时间复杂性和空间复杂性之分。

2、出自于“平衡子问题”的思想,通常分治法在分割原问题,形成若干子问题时,这些子问题的规模都大致相同。

3、使用二分搜索算法在n个有序元素表中搜索一个特定元素,在最佳情况下,搜索的时间复杂性为O(1),在最坏情况下,搜索的时间复杂性为O (logn)。

4、已知一个分治算法耗费的计算时间T(n),T(n)满足如下递归方程: n?2O(1)? T(n)??2T(n/2)?O(n)n?2?解得此递归方可得T(n)= O()。

nlogn 5、动态规划算法有一个变形方法备忘录方法。

这种方法不同于动态规划算法“自底向上”的填充方向,而是“自顶向下”的递归方向,为每个解过的子问题建立了备忘录以备需要时查看,同样也可避免相同子问题的重复求解。

递归的二分查找算法在divide阶段所花的时间是 O(1) ,conquer阶段6.所花的时间是 T(n/2) ,算法的时间复杂度是 O( log n) 。

7.Prim算法利用贪心策略求解最小生成树问题,其时间复杂度是2O(n) 。

8.背包问题可用贪心法,回溯法等策略求解。

39.用动态规划算法计算矩阵连乘问题的最优值所花的时间是 O(n) ,子2问题空间大小是 O(n) 。

10.图的m着色问题可用回溯法求解,其解空间树中叶子结点个数是nm ,解空间树中每个内结点的孩子数是 m 。

11.单源最短路径问题可用贪心法、分支限界等策略求解。

12、一个算法的优劣可以用(时间复杂度)与(空间复杂度)与来衡量。

13、回溯法在问题的解空间中,按(深度优先方式)从根结点出发搜索解空间树。

14、直接或间接地调用自身的算法称为(递归算法)。

15、?记号在算法复杂性的表示法中表示(渐进确界或紧致界)。

16、在分治法中,使子问题规模大致相等的做法是出自一种(平衡(banlancing)子问题)的思想。

算法分析与设计考试复习题及参考答案jing

算法分析与设计考试复习题及参考答案jing

一、填空题1、算法的复杂性是算法效率2、的度量,是评价算法优劣的重要依据。

1、设n为正整数,利用大“O(·)”记号,将下列程序段的执行时间表示为n的函数,则下面程序段的时间复杂度为O(n)2、。

i=1; k=0;while(i<n) { k=k+10*i;i++; }3、计算机的资源最重要的是时间和空间资源。

因而,算法的复杂性有时间复杂度和空间复杂度之分。

3、f(n)= 6×2n+n2,f(n)的渐进性态f(n)= O( 2n4、 )5、递归是指函数直接或者间接通过一些语句调用自身。

4、分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立6、且与原问题相同。

二、选择题(本题20分,每小题2分)1、分支限界法与回溯法都是在问题的解空间树T上搜索问题的解,二者( B )。

A.求解目标不同,搜索方式相同B.求解目标不同,搜索方式也不同C.求解目标相同,搜索方式不同D.求解目标相同,搜索方式也相同2、回溯法在解空间树T上的搜索方式是( A)。

A.深度优先B.广度优先C.最小耗费优先D.活结点优先3、在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是( B )。

A.回溯法B.分支限界法C.回溯法和分支限界法D.回溯法求解子集树问题4、以下关于判定问题难易处理的叙述中正确的是( C )。

A.可以由多项式时间算法求解的问题是难处理的B.需要超过多项式时间算法求解的问题是易处理的C.可以由多项式时间算法求解的问题是易处理的D.需要超过多项式时间算法求解的问题是不能处理的5、设f(N),g(N)是定义在正数集上的正函数,如果存在正的常数C和自然数N0,使得当N≥N0时有f(N)≤Cg(N),则称函数f(N)当N充分大时有上界g(N),记作f(N)=O(g(N)),即f(N)的阶( A )g(N)的阶。

A.不高于B.不低于C.等价于D.逼近6、对于含有n个元素的子集树问题,最坏情况下其解空间的叶结点数目为( B )。

算法设计复习题

算法设计复习题

一、单选题1、下面关于算法的描述,正确的是(d )A、一个算法只能有一个输入B、算法只能用框图来表示C、一个算法的执行步骤可以是无限的D、一个完整的算法,不管用什么方法来表示,都至少有一个输出结果2、一位爱好程序设计的同学,想通过程序设计解决“韩信点兵”的问题,他制定的如下工作过程中,更恰当的是(c )A、设计算法,编写程序,提出问题,运行程序,得到答案B、分析问题,编写程序,设计算法,运行程序,得到答案C、分析问题,设计算法,编写程序,运行程序,得到答案D、设计算法,提出问题,编写程序,运行程序,得到答案3、有5位运动员100米成绩依次为13.8,12.5,13.0,13.2,13.4,(c)若采用选择排序算法对其进行从小到大排序,则第二趟的排序结果是(A) 12.5 13.8 13.2 13.4 13.0 (B) 12.5 13.4 13.2 13.8 13.0(C) 12.5 13.0 13.8 13.2 13.4 (D) 12.5 13.2 13.8 13.4 13.04、下面说法正确的是(a )A、算法+数据结构=程序B、算法就是程序C、数据结构就是程序D、算法包括数据结构5、数列1,4,7,10,13,……的递推公式为( d )。

(A) f(1)=1;f(n)=n+3 (B) f(1)=1;f(n)=n*2-1(C) f(1)=1;f(n)=n*2+1 (D) f(1)=1;f(n)=f(n-1)+36、用选择排序法对数据7,6,3,9,2从大到小排序,共需经过多少次数据对调。

a(A) 3 (B) 4 (C) 5 (D) 107、动态规划算法的基本要素为(c )。

A、最优子结构性质与贪心选择性质B、重叠子问题性质与贪心选择性质C、最优子结构性质与重叠子问题性质D.、预排序与递归调用8、算法分析中,记号O表示( b ),记号Ω表示(a),记号Θ表示(d )。

A、渐进下界B、渐进上界C、非紧上界D、紧渐进界E、非紧下界9、以下关于渐进记号的性质是正确的有:(a)A、f(n)(g(n)),g(n)(h(n))f(n)(h(n))=Θ=Θ⇒=ΘB、f(n)O(g(n)),g(n)O(h(n))h(n)O(f(n))==⇒=C、O(f(n))+O(g(n)) = O(min{f(n),g(n)})D、f(n)O(g(n))g(n)O(f(n))=⇔=10、下列算法中通常以自底向上的方式求解最优解的是( b )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、选择题1.选出不是算法所必须具备的特征(C)。

A有穷性B确切性C高效性D可行性2.不属于给合问题的是(C )。

A Euler的36名军官问题B 图的Hamiliton C求二项式展开系数 D 集合的幂集3.下列(C )不是衡量算法的标准。

A 时间效率B 空间效率C 问题的难度D 适应能力4.下列函数关系随着输入量增大增加量最快的是(D )。

A logn Bn3 C2n D n!5.如果某一算法的执行时间不超过输入规模的2倍,那么算法渐近时间复杂度为(B )。

A O(2n)B O(n) CΘ (n) D Ω(n)6.下列程序段的算法时间复杂度是(D )for (i=1;i<=n;i++)for (j=1;i<=m;m++)S;A O(n2)B O(m2)C O(m+n)D O(mn)7.下列程序段S执行次数为(C )。

for (i=1;i<=n;i++)for (j=1;i<=m;m++)S;A n2B n2/2C n(n+1)D n(n+1)/28.使用F(n)=n*f(n-1)递归求F(4),递归调用子函数的次数为(D )。

A 3次B 4次C 5次D 8次9.递推关系M(n)=M(n-1)+1,M(0)=0的算法时间复杂度为(C )。

A O(n!)B O(2n)C O(n)D O(1)10.与递推关系x(n)=2x(n-1)+1,x(1)=1等价的通项公式为(B )。

A x(n)=2nB x(n)=2n-1C x(n)=2n+1D x(n)=n!11.三个盘子的汉诺塔,至少要执行移动操作次数为( D )。

A1次 B 3次 C 6次 D 7次12.Fibonacci数列第10项为(D)。

A 3B 13C 21D 3413.12个金币中有一枚是假币,至少需要称量的次数是(C )。

A 0B 1C 3D 414.二维最近邻点问题,如果使用分治法,对于一个子集上的某一点,另一个子集上需要检查的点的个数是(C )。

A 1个B 2个C 6个D 8个15.一维最近邻点问题,如果使用分治法,对于一个子集上的某一点,另一个子集上需要检查的点的个数是(B )。

A 1个B 2个C 6个D 8个15.下列图形不属于凸集的是( D )。

A 三角形B 四边形C 五边形D 五角星16.对于凸集下列说法正确的是(B )。

A 凸集中的所有点都属于凸包;B 凸集中任意两点的连线都在凸中;C 凸集中任意两点的连线都不在凸集中;D一个点集如果不是凸集,则点集中任意两点的连线都不在凸集中17.下列是动态规划算法基本要素的是(A )。

A 最优子结构B构造最优解 C 贪心选择因子D界限函数18.下列问题中具有多项式解法的是(C)。

A背包问题B生成排列序列问题 C n个元素的排序问题 D 集合的幂集问题19.如果背包的容量为100,而物体共有10件,则使用动态规划求解背包问题数组大小为(D )。

A 10B 100C 1000D 1000020.排列问题属于( D )。

A 可解问题B不可解问题 C P问题 D NP问题21.(A )算法应用到广度优先遍历策略。

A 分支界限法B 动态规划法C分治法D回溯法22.Dijstra算法属于(A )。

A 贪心算法B概率算法C回溯法D分支限界法23.若f(n)=2n3+3n,g(n)=100n2+2n+100,则f=O(g)为(B )。

A 真B 假C 无法确定D均不是24.若f(n)=50n+logn,g(n)=10n+loglogn,则f=O(g)为(A )。

A 真B 假C 无法确定D均不是25.Prim算法求最小生成树采用的是(A )算法思想。

A 贪心算法B 动态规划法C 回溯法D 蛮力法二、简答题1.给出递推公式x(n)=x(n-1)+n,x(0)=0对应的通项公式计算过程?解:X(n)-X(n-1)=nX(n-1)-X(n-2)=n-1…………X(1)-X(0)=1X(n)-X(0)=(n+1)n\2X(n)= (n+1)n\22.O、Θ、Ω之间的区别与联系是什么?答:O描述增长率的上限Θ用来表示算法的精确阶Ω描述增长率的下限只要当考察问题规模充分大时,算法中基本语句的执行次数在渐近意义下的阶,……3种等渐近符号。

3.什么是数据结构,什么是算法,两者有什么关系?答:数据结构:计算机存储/族素质数据的方式。

算法:一系列解决问题的指令。

程序=算法+数据结构4.将4n2,log n,3n,20n,2,n2/3,n!按渐近阶从低到高顺序排序。

答:2<n2/3 <log n<20n<4n2 <3n<n!5.举例说明分治法、动态规划法和贪心法适用范围,及三者之间的区别。

答:分治法:适用于原问题可划分为子问题时如汉诺塔问题(循环赛,最近对,棋盘覆盖等)动态规划:当原问题可分解为子问题茄子问题重叠并且具有最优子结构时可用动态规划法,如TSP问题(多端最短路径问题,0/1背包问题等)贪心:当一个问题具有最优子结构性质且具有贪心选择性时可用贪心算法,如最小生成树问题(背包问题,活动安排问题等)在分治法德基础上,满足最优子结构性质才能用动态规划,在动态规划可行的基础上满足贪心选择性才能用贪心。

6.简述分治法、贪心法、蛮力法、回溯法、减治法的设计思想。

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

贪心:指根据当前已有信息做出选择,不从整体最优考虑,只选择局部最优。

蛮力:采用一定的策略将待求解问题的所有元素依次处理一次,从而找出问题的解。

回溯:只构造可能解的一部分,然后评估这个部分解,如果这个部分解有可能导致一个完全解,则对其进一步构造,否则,就不必继续构造这个解了。

减治:把一个大问题划分为若干子问题,但些子问题不需要分别求解,只需求解其中那个一个子问题。

7.举例说明分治法和减治法的在设计上区别与联系。

答:分治法是将一个大问题分解为若干子问题分别求解,而减治法是只求解部分子问题。

8.简述什么是欧拉回路,TSP问题,哈密顿回路问题。

答:欧拉回路:图G的一个回路,若它恰它通过G 中每条边一次,则称该回路为欧拉回路。

TSP:从图的一个顶点出发,每个定点只能访问一次,最后回到原点且使路径最短。

哈密顿回路:从一个城市出发,紧锅盖每一个城市恰好一次,然后回到出发城市。

9.Strassen矩阵乘法可以利用什么算法实现.答:可用分治法实现。

三.应用题1.给出应用动态规划法设计算法的一般步骤,并用动态规划法求下面多段图中从顶点0到顶点15的最短路径,写出求解过程。

解:d(0,9)=min{c01 +d(1,9) , c02+d(2,9) , c03 +d(3,9)}d(1,9)=min{c14 +d(4,9) , c15+d(5,9) }d(2,9)=min{c24 +d(4,9) , c25+d(5,9) , c26 +d(6,9)}d(3,9)=min{c35 +d(5,9) , c36+d(6,9) }d(4,9)=min{c47 +d(7,9) , c48+d(8,9) }d(5,9)=min{c57 +d(7,9) , c58+d(8,9) }d(0,9)=min{c67 +d(7,9) , c68+d(8,9) }d(7,9)= c79 =7 (7→9)d(8,9)= c89 =3(8→9)d(6,9)=min{6+7,5+3}=8(6→8)d(5,9)= min{8+7,6+3}=9(5→8)d(4,9)= min{5+7,6+3}=9(4→8)d(3,9)= min{4+9,7+8}=13(3→5)d(2,9)= min{6+9,7+9,8+8}=15(2→4)d(1,9)= min{9+9,8+9}=17(1→5)d(0,9)= min{4+17,2+15,3+13}=16(0→3)最后得最短路径为0→3→5→8→9 长度为16。

2.有4个物品,其重量分别为(4, 7, 5, 3),物品的价值分别为(40, 42, 25, 12),背包容量为10。

试设计3种贪心策略,并给出在每种贪心策略下背包问题的解。

解:按单位价值最大,装入物品1、3 总价值65按背包容量最大,装入物品2,4 总价值543.给出{23 13 49 6 31 19 28}采用快速排序思想进行排序时一次划分的过程示意图。

解:19 13 49 6 31 23 2819 13 23 6 31 49 2819 13 6 23 31 49 284.画出当4n时,货郎担问题的状态空间树。

给出有4个顶点的货郎担问题,其费用矩阵如图所示,求从顶点1出发,最后回到顶点1的最短路线。

画出解空间树搜索过程。

∞∞ 1 78 ∞ 5 17 2 ∞ 62 53 ∞5.画出当4n时,0/1背包问题的状态空间树给定背包容量W=10,每件物体的重量以及价值为14(42),6(12),8(40),10(25),画出解空间树搜索过程。

四、算法设计题1.给定数组A[n],存储n个实数,试设计一个算法,在最坏情况下用最少比较次数找出该数组中元素的最大值和最小值,并说明采用了何种算法设计思想,其最坏比较多少次。

2.描述贪心法的求解过程,给出基于最近邻点策略采用贪心法求解TSP问题伪代码,并分析该算法的时间性能。

3.设计算法实现求数组中相差最小的两个元素(称为最接近数)的差。

4.有n枚硬币,其中有一枚硬币是假币,且假币的重量较轻,通过一架天平找出假币,设计找出假币的方案,要求在最坏情况下用天平的比较次数最少。

5.一个农夫带着一条狼、一只羊和一筐菜,想从河一边(左岸)乘船到另一边(右岸),由于船太小,农夫每次只能带一样东西过河,而且如果没有农夫看管,则狼会吃羊,羊会吃菜。

农夫怎样过河才能把每样东西安全地送过河呢?请将这个问题的模型抽象出来,并设计算法求解。

6.已知某系统在通信联络中只可能出现八种字符,其概率分别为0.05,0.29,0.07,0.08,0.14,0.23,0.03,0.11,试设计其哈夫曼编码,并请画出其图形,说明其设计思想。

相关文档
最新文档