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

D.一个算法不能有多个开始处,也不能有多个结束处
答案:B
14.算法中通常需要三种不同的执行流程,即:_____。
A.连续模式、分支模式和循环模式
B.顺序模式、结构模式和循环模式
C.结构模式、分支模式和循环模式
D.顺序模式、分支模式和循环模式
答案:D
15.算法中通常需要三种不同的执行流程,下面说法正确的是:_____。
答案:B
2.计算机是一种按照设计好的程序,快速、自动地进行计算的电子设备,计算机开始计算之前,必须把解决某个问题的程序存贮在计算机的_____中。
A.硬盘B.软盘C.内存D.CPU
答案:C
3.计算机程序由以下两部分即:_____组成。
A.执行部分和数据部分
B.数据部分和程序部分
C.指令部分和数据部分
第1章计算机和算法
1.使用计算机解题的步骤,以下描述正确的是:_____。
A.正确理解题意→设计正确算法→寻找解题方法→编写程序→调试运行
B.正确理解题意→寻找解题方法→设计正确算法→编写程序→调试运行
C.正确理解题意→寻找解题方法→设计正确算法→调试运行→编写程序
D.正确理解题意→寻找解题方法→设计正确算法→编写程序→调试运行
答案:B
10.关于算法的确定性特征,以下不符合算法确定性的是:_____。
A.D←(B * B–4 * A * C)
B.S←(L * H) / 10
C.输入:X
D.输出:L /正整数
答案:D
11.可以用多种不同的方法来描述一个算法,算法的描述可以用:_____。
A.流程图、分支和循环
B.顺序、流程图和自然语言
【课后习题及答案】《计算机算法设计与分析(第三版)课后习题答案详解

精品课程 课后习题答案第 1 章 算 法 概 述习蹬 1- 1函数的渐近表达式求下列函数的渐近表达式:3, f + 10 n ; 1l 匀10·+·2'' ; 分析与解答: 3矿+10n 二. ( ) ( 4 ) ;,l / 10+ 2 擒 = 0 ( 2” ) ; 2.1-t- l 过 一( ){ 1 ) ;lo 耟. ; t = ( ) ( l (1g1.1) ; I O l og 守 =('i ?!), 21 + 1;, 1; l o g n ' ; 10lv g3飞习题 1- 21() . l )和() ( 2 )的区别试论 ( )( l ) 和 () ( 2 )的区别. 分析与觞答:根据符号()的定义易知0 (1 ) = 0( 2)。
用()(1) 或 0 ( 2 ) 表示同一个函数时 ,差别仅在于 其中的祜数因子。
习题 1- 4 按渐近阶排列表达式按照渐近阶从低到高的顺序排列以下表达式,4n \排在哪一位?分析与解答:l ()g n , 3入 20:ri, 2 . n 2/又 义叫 应该3飞 n!。
, 函 数 排列 顺 序 如 下 : 2 .l og t , n23 、20n, 4,i-, 按 浙 近 阶从 低到尚 习题 1- 5箕法效宇( l ) 假设某符法在椋人栽模为”时的计算时间为 T (,t) = 3 X 2又 在某 台计算机上实现井 完成该算 法的时间为1 秒.现有另一台计算机,其运行速度为第一台的 64 倍,那么在这台新 机器 十用 同 一 符 法在 t 秒 内 能 招 轮人规模为多大的间题?( 2) 若上述芬法的计算时间改进为 T ( n )=r/'能解轴入规枑为多大的问烦?( 3) 若 上述算法的计算时间进一步改进为 T (11) = 8 ,f 秒和可能解输人规筷 为多 大的问 题?分析与解答 :其余 条 件不 变 ,则 在新 机 器上用i 秒时间其 余 条 件 不 变 ,那么在新机器上用"赁法 在 t · 秒1引能 解输人规模 为 n l 的问题。
算法与程序的设计会考习题带答案解析

2013-2014学年度《算法与程序设计》模块会考复习题一.选择题1.计算机解决问题的过程是____B__ _。
A.确定方案分析问题设计步骤设计程序B.分析问题确定方案设计步骤设计程序C.分析问题设计步骤确定方案设计程序D.设计程序分析问题设计步骤确定方案2.程序设计语言的分类是A。
A.机器语言、汇编语言和高级语言 B.顺序结构、分支结构和循环结构(程序的三种结构)C.低级语言、中级语言和高级语言 D.自然语言、伪代码和流程图3. 流程图中表示判断的是B。
A.矩形框 B.菱形框 C.圆形框 D.椭圆形框计算判断平行四边形:输出圆角矩形:开始和结束4. 在Java系统中设计程序,源代码文件的扩展名是___C____。
A.txt B.class C.java D.doc文本文件 java编译后,字节码 word文件图片文件jpg,gif,bmp 视频avi,wmv,flv,3gp,MP4 音频mp3,wma,wav,mid5. 用于将两个或多个字符串连接起来的运算符是D。
A. *B. ++C. &D. +&&与,都为真则真,否则假||或,其一为真就为真%取余数 14%4结果为2运算顺序,先乘除,再加减,再比较>=,在非,与,或。
6.下列可以作为合法变量名的是A。
A.$1 B. class C. 2b D. a*2(1)字母开头,后面跟着字母或数字(2)字母又包含$,_不能为java关键字。
区分大小写。
7.关于java规则错误的是A。
A.Java语句不区分大小写 B. 主类名必须与文件名一致C.main( )是程序执行的起点 D.Java语句以分号结尾8.要想正确的调试出程序,在保存Java源程序时主类名必须与文件名__ A。
A.完全一致 B.完全不同 C.可以相同也可以不同 D.大小写可以不一样9.下列不合法的运算符是 C 。
A .== B. != C. <> D. >===判断是否等于 !=不等于 >=大于或等于 <=小于或等于10. 下面关于算法的描述,错误的是 C 。
计算机算法与设计复习题(含答案)

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-4章复习题

一、选择题。
1. 算法的计算量的大小称为计算的()。
A.效率 B. 复杂性 C. 现实性 D. 难度2.计算机算法指的是(1),它必须具备(2)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性3. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的5.从逻辑上可以把数据结构分为()两大类。
A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构6.程序段 For(i=n-1;i>0;i--)For(j=1;j<=i;j++)If(a[j]>a[j+1])a[j]←→a[j+1]其中 n为正整数,则最后一行的语句时间复杂度在最坏情况下是()A. O(n)B. O(nlogn)C. O(n3)D. O(n2)7.下述哪一条是顺序存储结构的优点?()A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示8.下面关于线性表的叙述中,错误的是哪一个?()A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
9.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表11. 链表不具有的特点是()A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比12.单链表的一个存储结点包含()A数据域或指针域 B指针域或链域C指针域和链域 D数据域和链域13.(1) 静态链表既有顺序存储的优点,又有动态链表的优点。
算法与程序部分复习试题

VB题复习题1.下列各组控件都具有Caption属性的是 CA.窗体、文本框B.标签、定时器C.窗体、标签D.文本框、定时器2. 下面关于算法的错误说法是BA)算法必须有输出B)算法必须在计算机上用某种语言实现C)算法不一定有输入 D)算法必须在有限步执行后能结束3.下列每个控件都具有的属性是A4.下列运算结果中,值最大的是 D\4 4 mod 3 mod 4 〖/表示除,\表示整除,mod表示求余数〗5.以下哪个是合法的变量名 DA.Len B.Test@qw C.6cost_1 D.count2s6.在Visual Basic代码中,将多个语句合并在一行上的并行符是BA. 撇号(')B. 冒号(:)C. 感叹号(!)D. 问号()7.下列语句中,可以表示输入语句的有 C D ,输出语句的有 ABE表示赋值语句的有 ADFG (多选)(a) () =vala F. a=a*b+c =3098.下列控件中可设置滚动条的是 C (即具有ScrollBars属性的对象)A.计时器 B.标签 C.文本框 D.按钮9.下面程序执行的结果是 CPrivate Sub Form_Click()A = "123":B = "456"C = Val(A) + Val(B) 〖val是把字符转化为数值的函数〗msgbox (C \ 100)End Sub10.在VB中,执行“IF A>5 then b=10 else b=20”语句后(程序在该行语句前未对A变量赋值),B值为C 【说明:在VB中,如果变量未被赋值而直接引用,则数值型变量的值为0,字符型变量的值为空串“”。
】CA.5 B.10 C.20 D.10或2011.下列逻辑运算结果为"true"的是 Cor not true and not trueC. true or not true and not true12.下列控件中可用于接受用户输入文本,又可用于显示文本的是BA.Label 控件 B. TextBox 控件C. Timer 控件D. CommandButton 控件13.以下程序段执行后,整型变量n 的值为Dyear=2001n=year\4+year\400-year\100A. 495B. 505C. 500D. 48514.下列关于CommandButton 控件的叙述正确的是 AA. CommandButton 控件的Caption 属性决定按钮上显示的内容B. 单击VB应用程序中的按钮,则系统激活按钮控件对应的Change 事件 [click事件]C. CommandButton 控件的name 属性决定按钮上显示的内容D. 以上都不对15.一只漂亮的酒杯被摔碎了,则漂亮,酒杯,摔,碎了是 CA.对象,属性,事件,方法B. 对象,属性,方法,事件C.属性,对象,方法,事件D. 属性,对象,事件,方法16.如果要改变窗体的标题,需要设置窗体对象的属性。
vb《算法与程序设计》复习试题(1)
《算法与程序设计》复习题一、选择题部分(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.算法的三种基本控制结构是顺序结构、分支结构和()。
算法与程序部分复习试题
VB题复习题1.下列各组控件都具有Caption属性的是CA.窗体、文本框B.标签、定时器C.窗体、标签D.文本框、定时器2. 下面关于算法的错误说法是BA)算法必须有输出B)算法必须在计算机上用某种语言实现C)算法不一定有输入D)算法必须在有限步执行后能结束3.下列每个控件都具有的属性是AB.CaptionC.FontD.Interval4.下列运算结果中,值最大的是DA.3\4B.3/4C.4 mod 3D.3 mod 4 〖/表示除,\表示整除,mod表示求余数〗5.以下哪个是合法的变量名DA.Len B.Test@qw C.6cost_1 D.count2s6.在Visual Basic代码中,将多个语句合并在一行上的并行符是BA. 撇号(')B. 冒号(:)C. 感叹号(!)D. 问号(?)7.下列语句中,可以表示输入语句的有 C D ,输出语句的有ABE表示赋值语句的有ADFG (多选)A.text1.text=str(a)B.msgbox(a)C.inputbox()D.P=val(text5.text)E.print aF. a=a*b+cG.ads=3098.下列控件中可设置滚动条的是C (即具有ScrollBars属性的对象)A.计时器B.标签C.文本框D.按钮9.下面程序执行的结果是CPrivate Sub Form_Click()A = "123":B = "456"C = Val(A) + Val(B) 〖val是把字符转化为数值的函数〗msgbox (C \ 100)End SubA.123B.3C.5D.57910.在VB中,执行“IF A>5 then b=10 else b=20”语句后(程序在该行语句前未对A变量赋值),B值为C 【说明:在VB中,如果变量未被赋值而直接引用,则数值型变量的值为0,字符型变量的值为空串“”。
算法设计与分析复习题目及答案
分治法1、二分搜索算法是利用(分治策略)实现的算法。
9. 实现循环赛日程表利用的算法是(分治策略)27、Strassen矩阵乘法是利用(分治策略)实现的算法。
34.实现合并排序利用的算法是(分治策略)。
实现大整数的乘法是利用的算法(分治策略)。
17.实现棋盘覆盖算法利用的算法是(分治法)。
29、使用分治法求解不需要满足的条件是(子问题必须是一样的)。
不可以使用分治法求解的是(0/1背包问题)。
动态规划下列不是动态规划算法基本步骤的是(构造最优解)下列是动态规划算法基本要素的是(子问题重叠性质)。
下列算法中通常以自底向上的方式求解最优解的是(动态规划法)备忘录方法是那种算法的变形。
(动态规划法)最长公共子序列算法利用的算法是(动态规划法)。
矩阵连乘问题的算法可由(动态规划算法B)设计实现。
实现最大子段和利用的算法是(动态规划法)。
贪心算法能解决的问题:单源最短路径问题,最小花费生成树问题,背包问题,活动安排问题,不能解决的问题:N皇后问题,0/1背包问题是贪心算法的基本要素的是(贪心选择性质和最优子结构性质)。
回溯法回溯法解旅行售货员问题时的解空间树是(排列树)。
剪枝函数是回溯法中为避免无效搜索采取的策略回溯法的效率不依赖于下列哪些因素(确定解空间的时间)分支限界法最大效益优先是(分支界限法)的一搜索方式。
分支限界法解最大团问题时,活结点表的组织形式是(最大堆)。
分支限界法解旅行售货员问题时,活结点表的组织形式是(最小堆)优先队列式分支限界法选取扩展结点的原则是(结点的优先级)在对问题的解空间树进行搜索的方法中,一个活结点最多有一次机会成为活结点的是( 分支限界法).从活结点表中选择下一个扩展结点的不同方式将导致不同的分支限界法,以下除( 栈式分支限界法)之外都是最常见的方式.(1)队列式(FIFO)分支限界法:按照队列先进先出(FIFO)原则选取下一个节点为扩展节点。
(2)优先队列式分支限界法:按照优先队列中规定的优先级选取优先级最高的节点成为当前扩展节点。
计算机算法与设计复习题(含答案) (1)
一、选择题1、衡量一个算法好坏的标准是(C )。
(A)运行速度快(B)占用空间少(C)时间复杂度低(D)代码短2、记号O的定义正确的是(A)。
(A)O(g(n)) = { f(n) | 存在正常数c和n0使得对所有n≥n0有:0≤f(n) ≤cg(n) };(B)O(g(n)) = { f(n) | 存在正常数c和n0使得对所有n≥n0有:0≤cg(n) ≤f(n) };(C)O(g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n0 >0使得对所有n≥n0 有:0 ≤f(n)<cg(n) };(D)O(g(n)) = { f(n) | 对于任何正常数c>0,存在正数和n0 >0使得对所有n≥n0 有:0 ≤cg(n) < f(n) };3、二分搜索算法是利用( A )实现的算法。
(A)分治策略(B)动态规划法(C)贪心法(D)回溯法4、使用分治法求解不需要满足的条件是(A )。
(A)子问题必须是一样的(B)子问题不能够重复(C)子问题的解可以合并(D)原问题和子问题使用相同的方法解5、合并排序算法是利用(A)实现的算法。
(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、实现棋盘覆盖算法利用的算法是( A )。
(A)分治法(B)动态规划法(C)贪心法(D)回溯法10、矩阵连乘问题的算法可由(B)设计实现。
(A)分支界限算法(B)动态规划算法(C)贪心算法(D)回溯算法11、实现大整数的乘法是利用的算法( C )。
(A)贪心法(B)动态规划法(C)分治策略(D)回溯法12、最长公共子序列算法利用的算法是(B)(A)分支界限法(B)动态规划法(C )贪心法(D)回溯法13、下列算法中通常以自底向上的方式求解最优解的是(B )(A)备忘录法(B)动态规划法(C)贪心法(D)回溯法14、下列是动态规划算法基本要素的是(D)(A)定义最优解(B)构造最优解(C)算出最优解(D)子问题重叠性质15、下列不是动态规划算法基本步骤的是( A )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机算法与设计复习题(含答案)
1、一个算法的优劣可以用与与来衡量。
2、回溯法在问题的解空间中,按从根结点出发搜索解空间树。
3、直接或间接地调用自身的算法称为。
4、记号在算法复杂性的表示法中表示。
5、在分治法中,使子问题规模大致相等的做法是出自一种。
可以解决背包问题
28、投点法是的一种。
29、若线性规划问题存在最优解,它一定不在
30、n皇后问题可以用解决。
31、若L是一个NP完全问题,L经过多项式时间变换后得到问题l,则l是( P类问题 ).
32、算法与程序在性质上有所不同,下列性质中,程序可以不满足哪个性质:。
案。
对;
8)动态规划算法是用于解最优化问题,采用自顶向下的方式计算出最优解。
错;
9)贪心算法和动态规划算法都要求问题必须具有最优子结构性质和贪心选择性质。
错; 10)队列式分支限界法将活结点表组织成一个优先队列,并按队列的先进现出原则选取下一个结点称为当前扩展结点。
错;四、算法设计说明:任意选择所使用的算法策略;要求:说问题)的
思想。
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、按照活结点表的组织方式的不同,分支限界法包括和两种形式。
20、如果对于同一实例,蒙特卡洛算法不会给出两个不同的正确解答,则称该蒙特卡洛算法是。
21、哈夫曼编码可利用算法实现。
22概率算法有数值概率算法,蒙特卡罗算法,拉斯维加
斯算法和舍伍德算法 23以自顶向下的方式求解最优解的有
24、下列算法中通常以自顶向下的方式求解最优解的是。
A、分治法B、动态规划法C、贪心法D、回溯法
25、在对问题的解空间树进行搜索的方法中,一个活结点有多次机会成为活结点的是
26、旅行售货员问题不能用解决可以用回溯法解决,分支限界法,NP完全性理论与近似算法 27、贪心算法不能解决
34、动态规划算法的基本步骤不包括下列哪一步:包括:划分阶段:选择状态确定决策并写出状态转移方程写出规划方程:
35、在调试程序过程中,下列哪一种错误是计算机检查不出来的: 36、分治算法不包括以下哪项内容:包括:二分搜索技术;大整数乘法;Strassen矩阵乘法;棋盘覆盖;合并排序和快速排序;线性时间选择;最接近点对问题;循环赛日程表
37、贪心算法不能解决。
38、舍伍德算法是的一种。
39、若线性规划问题存在最优解,它一定不在
40、回溯法可以解决的问题包括
判断题
1)分支限界法类似于回溯法,也是一种在问题的解空
间树T上搜索问题解的算法,两者的求解目标是相同的。
对;
2)优先队列式的分支限界法将活结点表组织成一个优先队列,并按优先队列中规定的结点优先级选取优先级最高的下一个结点称为当前扩展结点。
对;
3)回溯法求解问题的所有解时,要回溯到根,且根结点的所有子树都被搜索遍才结束。
错,搜索到一个解就可结束;
4)动态规划法用一个表来记录所有已解决的子问题的答案。
不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。
对;
5)一个直接或间接地调用自身的算法称为递归算法,而一个使用函数自身给出定义的函数称为递归函数。
定义递归函数时可以没有初始值。
错,应该有初始值;
6)一个直接或间接地调用自身的算法称为递归算法,而一个使用函数自身给出定义的函数称为递归函数。
定义递归函数时可以没有初始值。
错,应该有初始值;
7)动态规划法用一个表来记录所有已解决的子问题的答案。
不管该子问题以后是否被用到,只要它被计算过,就将其结果填入表中。
在需要时从表中找出以求得的答明所使用的算法策略;写出算法实现的主要步骤;分析算法的时间复杂性。
0-1背包问题第三章,第五章,第六章单源最短路径
问题第四章,第六章
0-1背包问题:算法策略:动态规划算法。
动态规划算法基本思想是将待求解问题分解成若干个子问题,但是经分解得到的子问题往往不是互相独立的。
不同子问题的数目常常只有多项式量级。
步骤:1找出最优解的性质,并刻划其结构特征。
2递归地定义最优值。
3以自底向上的方式计算出最优值。
4根据计算最优值时得到的信息,构造最优解。
时间复杂度:改进后算法的计算时间复杂性为O(2^n)。
当所给物品的重量wi(1≤i≤n)是整数时,|p[i]|≤c+1,(1≤i≤n)。
在这种情况下,改进后算法的计算时间复杂性为O(min{nc,2^n}) 单源最短路径问题:算法策略:贪心算法。
贪心算法总是作出在当前看来最好的选择。
也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择。
当然,希望贪心算法得到的最终结果也是整体最优的。
虽然贪心算法不能对所有问题都得到整体最优解,但对许多问题它能产生整体最优解。
如单源最短路经问题,最小生成树问题等。
在一些情况下,即使贪心算法不能得到整体最优解,其最终结果却是最优解的很好近似。
贪心算法则通常以自顶向下的方式进行,以迭代的方式作出相继的贪心选择,每作一次贪心选择就将所求问题简化为规模更小的子问题。
步骤:Dijkstra算法是解单源最短路径问题的贪心算
法。
其基本思想是,设置顶点集合S并不断地作贪心选择来扩充这个集合。
一个顶点属于集合S当且仅当从源到该顶点的最短路径长度已知。
初始时,S中仅含有源。
设u是G的某一个顶点,把从源到u且中间只经过S中顶点的路称为从源到u的特殊路径,并用数组dist记录当前每个顶点所对应的最短特殊路径长度。
Dijkstra算法每次从V-S中取出具有最短特殊路长度的顶点u,将u添加到S中,同时对数组dist作必要的修改。
一旦S包含了所有V中顶点,dist就记录了从源到所有其它顶点之间的最短路径长度。
时间复杂度:对于具有n个顶点和e条边的带权有向图,如果用带权邻接矩阵表示这个图,那么Dijkstra算法的主循环体需要O(n)时间。
这个循环需要执行n-1次,所以完成循环需要O(n^2)时间。
算法的其余部分所需要时间不超过O(n^2)。