计算机算法试题(含答案)

合集下载

《计算机算法设计与分析》习题及答案

《计算机算法设计与分析》习题及答案

《计算机算法设计与分析》习题及答案一.选择题1、二分搜索算法是利用( A )实现的算法。

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

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

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

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、O(n2n)B、O(nlogn)C、O(2n)D、O(n)13.分支限界法解最大团问题时,活结点表的组织形式是(B )。

A、最小堆B、最大堆C、栈D、数组14.最长公共子序列算法利用的算法是(B)。

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

A、分治法B、动态规划法C、贪心法D、回溯法16.下面是贪心算法的基本要素的是(C )。

A、重叠子问题B、构造最优解C、贪心选择性质D、定义最优解17.回溯法的效率不依赖于下列哪些因素( D )A.满足显约束的值的个数B. 计算约束函数的时间C.计算限界函数的时间D. 确定解空间的时间18.下面哪种函数是回溯法中为避免无效搜索采取的策略(B )A.递归函数 B.剪枝函数 C。

计算机数学试题及答案

计算机数学试题及答案

计算机数学试题及答案一、选择题(每题2分,共10分)1. 在计算机科学中,二进制数1011转换为十进制数是多少?A. 8B. 9C. 11D. 13答案:C2. 下列哪个选项不是计算机算法的特性?A. 有限性B. 确定性C. 通用性D. 可行性答案:C3. 在计算机存储中,1KB等于多少字节?A. 1024B. 512C. 1000D. 2048答案:A4. 计算机中的浮点数通常采用哪种表示法?A. 定点表示法B. 科学记数法C. 指数表示法D. 十进制表示法答案:C5. 计算机中的逻辑运算符AND、OR和NOT分别对应于哪些运算?A. 与、或、非B. 或、与、非C. 非、与、或D. 与、非、或答案:A二、填空题(每空1分,共10分)1. 计算机中的二进制数是由0和__1__组成。

2. 计算机程序设计语言通常分为__机器语言__、汇编语言和高级语言。

3. 计算机中的存储器分为__随机存取存储器(RAM)__和只读存储器(ROM)。

4. 计算机中的逻辑运算AND、OR和NOT分别用符号__&&__、||和!表示。

5. 计算机中的二进制数1010转换为十进制数是__10__。

三、简答题(每题5分,共20分)1. 简述计算机算法的基本特征。

答:计算机算法具有有限性、确定性、可行性和输入输出性。

2. 计算机中的二进制数和十进制数有什么区别?答:二进制数只有0和1两个数字,而十进制数有0到9十个数字。

二进制数适合计算机处理,而十进制数更符合人类的计数习惯。

3. 计算机中的浮点数表示法有哪些优点?答:浮点数表示法可以表示非常大或非常小的数,且精度高,适用于科学计算。

4. 计算机中的存储器为什么需要分为RAM和ROM?答:RAM用于存储临时数据,断电后数据会丢失,而ROM用于存储固定程序和数据,断电后数据不会丢失。

这种区分可以提高计算机的运行效率和数据安全性。

结束语:通过本试题的练习,可以加深对计算机数学基础知识的理解和掌握,为进一步学习计算机科学打下坚实的基础。

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

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

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.如果n是需要计算的规模,以下的算法复杂度描述中,复杂度最优的是()。

A. nB. n!C.√nD. n2正确答案:C2.以下不属于算法特征的是()。

A.有效性B.确定性C.可读性D.有穷性正确答案:C3.以下关于递归算法的说法,错误的是()。

A.递归算法可以转化为非递归算法。

B.递归算法的本质是分解法,将大问题分解为小问题,逐次减少问题的规模,从而得到求解结果。

C.递归算法是一个运算最快的算法D.递归算法非常简洁,但有些程序设计语言不支持递归算法。

正确答案:C4.程序设计一般包含以下四个步骤,其中首先应该完成的是()。

A.建立数学模型B.调试运行程序C.设计数据结构和算法D.编写程序正确答案:A5.三大科学思维不包括()。

A.实验思维B.计算思维C.理论思维D.经验思维正确答案:D6.影响算法设计的因素不包括()。

A.计算环境B.算法复杂性C.编程语言D.算法优化正确答案:C二、多选题1.以下可以用于并行计算的资源包括()。

A.多核CPUB.多CPUC.GPUD.多计算机正确答案:A、B、C、D2.算法的描述方法包括()。

A.流程图B.程序代码C.自然语言D.伪代码正确答案:A、B、C、D二、判断题1.计算思维部分来源于计算机科学。

()正确答案:×2.计算的本质是构建在一套公理体系上的、不断向上演化的规则。

()正确答案:×3.多项式复杂度的算法是复杂度比较高的算法。

()正确答案:√4.编译型的计算机语言处理系统可以生成可执行文件,之后程序的执行将不依赖源程序。

()正确答案:√。

计算机算法试题(含答案)

计算机算法试题(含答案)

算法设计与分析试卷一、填空题(20分,每空2分)1、算法的性质包括输入、输出、___、有限性。

2、动态规划算法的基本思想就将待求问题_____、先求解子问题,然后从这些子问题的解得到原问题的解。

3、设计动态规划算法的4个步骤:(1)找出____,并刻画其结构特征。

(2)_______。

(3)_______。

(4)根据计算最优值得到的信息,_______。

4、流水作业调度问题的johnson算法:(1)令N1=___,N2={i|ai>=bj};(2)将N1中作业依ai的___。

5、对于流水作业高度问题,必存在一个最优调度π,使得作业π(i)和π(i+1)满足Johnson不等式_____。

6、最优二叉搜索树即是___的二叉搜索树。

二、综合题(50分)1、当(a1,a2,a3,a4,a5,a6)=(-2,11,-4,13,-5,-2)时,最大子段和为∑ak(2<=k<=4)____(5分)2、由流水作业调度问题的最优子结构性质可知,T(N,0)=______(5分)3、最大子段和问题的简单算法(10分)int maxsum(int n,int *a,int & bestj){intsum=0;for (int i=1;i<=n;i++)for (int j=i;j<=n;j++)int thissum=0;for(int k=i;k<=j;k++)_____;if(thissum>sum){sum=thissum;______;bestj=j;}} return sum;}4、设计最优二叉搜索树问题的动态规划算法OptimalBinarysearchTree? (15分)Void OptimalBinarysearchTree(int a,int n,int * * m, int* * w){for(int i=0;i<=n;i++) {w[i+1][i]=a[i]; m[i+1][i]=____;}for(int r=0;r<n;r++)for(int i=1;i<=n-r;i++){int j=i+r;w[i][j]=w[i][j-1]+a[j]+b[j];m[i][j]=______;s[i][j]=i;for(int k=i+1;k<=j;k++){int t=m[i][k-1]+m[k+1][j];if(_____) {m[i][j]=t; s[i][j]=k;}}m[i][j]=t; s[i][j]=k;}}5、设n=4, (a1,a2,a3,a4)=(3,4,8,10), (b1,b2,b3,b4)=(6,2,9,15) 用两种方法求4个作业的最优调度方案并计算其最优值?(15分)三、简答题(30分)1、将所给定序列a[1:n]分为长度相等的两段a[1:n/2]和a[n/2+1:n],分别求出这两段的最大子段和,则a[1:n]的最大子段和有哪三种情形?(10分)答:2、由0——1背包问题的最优子结构性质,可以对m(i,j)建立怎样的递归式? (10分)3、0——1背包求最优值的步骤分为哪几步?(10分)参考答案:填空题:确定性分解成若干个子问题最优解的性质递归地定义最优值以自底向上的方式计算出最优值构造最优解 {i|ai<bi} ai的非减序排序;将N2中作业依bi的非增序排序min{bπ(i),aπ(i+1)}≥min{bπ(i+1),aπ(i)}最小平均查找长度综合题:20 min{ai+T(N-{i},bi)}(1=<i<=n) thissum+=a[k] besti=i 0 m[i+1][j] t<m[i][j]法一:min(ai,bj)<=min(aj,bi)因为 min(a1,b2)<=min(a2,b1)所以 1→2 (先1后2)由 min(a1,b3)<=min(a3,b1)得 1→3 (先1后3)同理可得:最后为1→3→4→2法二:johnson算法思想N1={1,3,4} N2={2}N¹1={1,3,4} N¹2={2}所以 N¹1→N¹2得:1→3→4→2简答题:1 、(1)a[1:n]的最大子段和与a[1:n/2]的最大子段和相同。

计算机算法基础试题及答案

计算机算法基础试题及答案

计算机算法基础试题及答案一、选择题1. 在计算机中,算法的特点不包括:A. 有穷性B. 确定性C. 可行性D. 可终止性答案:B2. 下列哪个不是算法的评价指标?A. 空间复杂度B. 时间复杂度C. 可读性D. 精确性答案:C3. 以下哪种排序算法的最差时间复杂度是O(n^2)?A. 快速排序B. 堆排序C. 归并排序D. 冒泡排序答案:D4. 广度优先搜索算法(BFS)的时间复杂度是:A. O(n)B. O(nlogn)C. O(n^2)D. O(n^3)答案:A5. 是否正确:在二分查找算法中,要求待查找的序列必须是有序的。

A. 正确B. 错误答案:A二、填空题1. 下列不属于常见的基本排序算法的是_______排序。

答案:希尔排序2. 在随机生成的n个数中使用二分查找,最坏情况下的时间复杂度为_______。

答案:O(logn)3. 在图的遍历中,栈或队列常用于辅助实现_______搜索算法。

答案:深度优先和广度优先4. 当n足够大时,时间复杂度为O(nlogn)的排序算法一般包括_______和_______。

答案:归并排序和快速排序5. 在递归算法中,必须包含递归结束的_______条件。

答案:基本三、简答题1. 请解释什么是时间复杂度和空间复杂度,并分别举例说明。

答:时间复杂度是对算法执行时间的衡量,表示该算法所需时间资源的多少。

常见的时间复杂度有O(1)、O(logn)、O(n)、O(nlogn)、O(n^2)等,其中O(1)表示常数时间,O(n)表示线性时间,O(n^2)表示平方时间。

空间复杂度是对算法执行所需空间资源的衡量,表示该算法所需的额外空间大小。

常见的空间复杂度有O(1)、O(n)等,其中O(1)表示常数空间,O(n)表示线性空间。

举例说明:以排序算法为例,冒泡排序的时间复杂度是O(n^2),空间复杂度是O(1);归并排序的时间复杂度是O(nlogn),空间复杂度是O(n)。

算法题__计算机算法设计与分析期末试题4套(含答案)

算法题__计算机算法设计与分析期末试题4套(含答案)

(1)用计算机求解问题的步骤:1、问题分析2、数学模型建立3、算法设计与选择4、算法指标5、算法分析6、算法实现7、程序调试8、结果整理文档编制(2)算法定义:算法是指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程(3)算法的三要素1、操作2、控制结构3、数据结构算法具有以下5个属性:有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。

确定性:算法中每一条指令必须有确切的含义。

不存在二义性。

只有一个入口和一个出口可行性:一个算法是可行的就是算法描述的操作是可以通过已经实现的基本运算执行有限次来实现的。

输入:一个算法有零个或多个输入,这些输入取自于某个特定对象的集合。

输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。

算法设计的质量指标:正确性:算法应满足具体问题的需求;可读性:算法应该好读,以有利于读者对程序的理解;健壮性:算法应具有容错处理,当输入为非法数据时,算法应对其作出反应,而不是产生莫名其妙的输出结果。

效率与存储量需求:效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。

一般这两者与问题的规模有关。

经常采用的算法主要有迭代法、分而治之法、贪婪法、动态规划法、回溯法、分支限界法迭代法也称“辗转法”,是一种不断用变量的旧值递推出新值的解决问题的方法。

利用迭代算法解决问题,需要做好以下三个方面的工作:一、确定迭代模型。

在可以用迭代算法解决的问题中,至少存在一个直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。

二、建立迭代关系式。

所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。

迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。

三、对迭代过程进行控制。

在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。

不能让迭代过程无休止地重复执行下去。

迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。

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

计算机算法与设计复习题(含答案) (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 )。

(完整版)算法设计与分析考试题及答案

(完整版)算法设计与分析考试题及答案

一、填空题(20分)1.一个算法就是一个有穷规则的集合,其中之规则规定了解决某一特殊类型问题的一系列运算,此外,算法还应具有以下五个重要特性:_________,________,________,__________,__________。

2.算法的复杂性有_____________和___________之分,衡量一个算法好坏的标准是______________________。

3.某一问题可用动态规划算法求解的显著特征是____________________________________。

4.若序列X={B,C,A,D,B,C,D},Y={A,C,B,A,B,D,C,D},请给出序列X 和Y的一个最长公共子序列_____________________________。

5.用回溯法解问题时,应明确定义问题的解空间,问题的解空间至少应包含___________。

6.动态规划算法的基本思想是将待求解问题分解成若干____________,先求解___________,然后从这些____________的解得到原问题的解。

7.以深度优先方式系统搜索问题解的算法称为_____________。

8.0-1背包问题的回溯算法所需的计算时间为_____________,用动态规划算法所需的计算时间为____________。

9.动态规划算法的两个基本要素是___________和___________。

10.二分搜索算法是利用_______________实现的算法。

二、综合题(50分)1.写出设计动态规划算法的主要步骤。

2.流水作业调度问题的johnson算法的思想。

3.若n=4,在机器M1和M2上加工作业i所需的时间分别为a i和b i,且(a1,a2,a3,a4)=(4,5,12,10),(b1,b2,b3,b4)=(8,2,15,9)求4个作业的最优调度方案,并计算最优值。

4.使用回溯法解0/1背包问题:n=3,C=9,V={6,10,3},W={3,4,4},其解空间有长度为3的0-1向量组成,要求用一棵完全二叉树表示其解空间(从根出发,左1右0),并画出其解空间树,计算其最优值及最优解。

计算机算法面试题及答案

计算机算法面试题及答案

计算机算法面试题及答案1. 问题:请解释什么是时间复杂度,并给出一个例子。

答案:时间复杂度是衡量算法运行时间与输入规模之间关系的量度。

它通常用大O符号表示,例如O(n)、O(n^2)等。

一个例子是冒泡排序算法,其时间复杂度为O(n^2),因为当数组长度为n时,它需要进行n*(n-1)/2次比较。

2. 问题:描述快速排序算法的过程。

答案:快速排序是一种分治算法,它通过选择一个“基准”元素,将数组分为两部分,一部分包含小于基准的元素,另一部分包含大于基准的元素。

然后递归地对这两部分进行快速排序,直到每个子数组只有一个元素或者为空。

3. 问题:什么是动态规划?请给出一个应用实例。

答案:动态规划是一种通过将复杂问题分解为更小的子问题来解决的方法,并且通过记忆已解决的子问题的结果来避免重复计算。

一个典型的应用实例是斐波那契数列的计算,通过动态规划可以避免大量的重复计算,从而提高效率。

4. 问题:解释图的深度优先搜索(DFS)算法。

答案:深度优先搜索是一种用于遍历或搜索树或图的算法。

它从一个节点开始,尽可能深地搜索树的分支,直到达到一个叶节点,然后回溯到上一个节点,继续搜索下一个分支,直到所有节点都被访问过。

5. 问题:请描述堆排序算法的工作原理。

答案:堆排序是一种基于比较的排序算法,它利用了二叉堆的数据结构。

算法的核心是构建一个最大堆,然后不断移除堆顶元素(最大值),将其放置在数组的末尾,同时调整剩余元素以保持最大堆的性质,直到数组完全排序。

6. 问题:什么是哈希表?它有什么优点?答案:哈希表是一种通过哈希函数将键映射到表中一个位置来访问记录的数据结构。

它的优点包括高效的查找、插入和删除操作,平均时间复杂度为O(1),这使得哈希表在需要快速访问数据的场景中非常有用。

7. 问题:解释什么是递归算法,并给出一个递归函数的例子。

答案:递归算法是一种自我引用的算法,它通过重复调用自身来解决问题。

一个典型的递归函数例子是计算阶乘的函数,它定义为n! = n * (n-1)!,其中n!是n的阶乘。

计算机计算方法试题及答案

计算机计算方法试题及答案

计算机计算方法试题及答案一、选择题1. 在计算机中,以下哪项不属于主存储器?[A] 内部存储器[B] 外部存储器[C] 高速缓存[D] 寄存器答案:[B] 外部存储器2. 下列哪种算法是用于求一个图中最短路径的?[A] 广度优先搜索[B] 深度优先搜索[C] Dijkstra算法[D] 快速排序算法答案:[C] Dijkstra算法3. 下列哪项不属于计算机网络的重要协议?[A] HTTP[B] DNS[C] TCP/IP[D] USB答案:[D] USB4. 在递归程序中,以下哪个选项描述了递归的基本特征?[A] 函数内部调用自身[B] 函数调用另一个函数[C] 函数返回一个值[D] 函数接受用户输入答案:[A] 函数内部调用自身5. 下列哪个选项是计算机中常用的二进制表示法?[A] 补码[B] 原码[C] 反码[D] 科学计数法答案:[A] 补码二、填空题1. 在二分查找算法中,若有序数组的长度为n,则最多需要进行______ 次比较来找到目标元素。

答案:log2(n)2. 当计算机进行浮点数运算时,可能会出现 ________ 误差。

答案:舍入误差3. 通过使用 _______,可以减少计算机程序运行时的空闲时间,提高运行效率。

答案:并行计算4. 在深度优先搜索算法中,使用 ______ 数据结构来记录已访问的节点。

答案:栈5. 在计算机领域,英特尔是一家知名的 ________ 公司。

答案:芯片制造三、简答题1. 请简要解释计算机网络中的TCP/IP协议是如何工作的。

答:TCP/IP协议是计算机网络中常用的通信协议之一,它包括两个部分:传输控制协议(TCP)和互联网协议(IP)。

TCP负责数据的可靠传输,通过数据分割、封装、重传等机制,保证数据的完整性和可靠性。

IP负责数据的路由和寻址,将数据从源主机传输到目标主机。

2. 请简要介绍一下迭代法和递归法在计算机计算方法中的应用。

答:迭代法和递归法都是常用的数值计算方法。

计算机算法复习题及答案(前三章)

计算机算法复习题及答案(前三章)

计算机算法复习题及答案(前三章)第一章1、什么是绝对误差?什么是相对误差?答:绝对误差等于准确值与近似值差的绝对值。

相对误差是近似数的误差与准确值的比值。

2、什么是绝对误差限?什么是相对误差限?答:绝对误差限为绝对误差的“上界”相对误差限为相对误差绝对值的“上界”3、有效数字与绝对误差限有何关系?有效数字与相对误差限有何关系?答:(绝对)若近似值的绝对误差限是某一位上的半个单位,且该位直到的第一位非零数字一共有几位。

则称近似值有n位有效数字。

(相对)设近似值=±0.···×有n位有效数字,≠0,则真相对误差限为×设近似值=±0.···×的相对误差限为×,≠0,则它有n位有效数字。

4、例1.11、例1.12、例1.15、例1.16.例1.11.设x=4.26972,那么取2位,=4.3,有效数字为2位取3位,=4.27,有效数字为3位取4位,=4.270,有效数字为4位取5位,=4.2697,有效数字为5位例1.12,若=3587.64是x的具有6位有效数字的近似值,则误差限是|-x|≤×=×若=0.0023156是x的具有5位有效数字的近似值,则误差限是|-x|≤×≤×例1.15,若=2.72来表示e的具有3位有效数字的近似值,则相对误差限是=×=×例1.16要使的近似值的相对误差限小于0.1%,要取几位有效数字?由定理1.1,≤×.由于=4.4···,已知=4,故只要取n=4,就有≤0.125×=0.1%只要对的近似值取4位有效数字,其相对误差限就小于0.1%。

此时由开方表得≈4.472 5、课本13~14页习题1、2、3、4.习题1:下列各数都是经过四舍五入得到的近似数,试指出它们是具有几位有效数字的近似数,并确定++和的误差限答:=1.1021,5位,=0.031,2位,=385.6,4位|++|-|++|≤|-|+|-|+|-|=×+×+×=0.5055 η()≈||η()+|η()|=1.1021××+0.031××=0.00055105+0.00000155=0.0005526η()≈||η()+||η() =0.001708255+0.21308256 =0.2148习题2.已测得某场地长L 的值为=110m ,宽d 的值为=80m,已知|L-|≤0.2m ,|d-|≤0.1m ,试求面积S=Ld 的绝对误差限和相对误差限。

计算机操作系统算法题(最全)

计算机操作系统算法题(最全)

6. 算法题(共32个题目)个题目)200348. 在信号量机制中,若P(S)操作是可中断的,则会有什么问题?问题?此题答案为:答:此题答案为:答:P(S)的操作如下:)的操作如下:Begin  B egin S.Value:= S.Value-1; ①If S.Value<0 Then ②Begin Insert(*,S.L); Block(*) ③End  E nd. End. 若P(S)可中断的,例如进程A在执行了语句①之后从CPU上退下了,假定此时S.Value=0;这时换另一进程B,B又将S.Value的值减1使之为-1,在执行语句③时,B被阻塞;然后又换回A执行,由于A的"断点"是语句①之后,当它执行语句②时,由于这时S.Value已经是-1,故进程继续执行而被阻塞。

这就出现了错误:本来A操作P(S)操作后,S.Value=0,是不应该被阻塞的,现在却被阻塞了。

却被阻塞了。

200350. 何谓临界区?下面给出的两个进程互斥的算法是安全的吗?为什么?为什么? #define true;  # define false; Int flag[2]; flag[1]=flag[2]=false; enter-crtsec(i) int i;  { While(flag[1-i]) flag[i]=true; } feave-crtsec(i)  Int i;  { flag[i]=false;  }  process I; … Enter-crtsec(i);  In critical section;  Leave-crtsec(i); 此题答案为:答:此题答案为:答:一次仅允许一个进程使用的资源称为临界资源,在一次仅允许一个进程使用的资源称为临界资源,在进程中对临界资源访问的程序段称为临界区。

进程中对临界资源访问的程序段称为临界区。

从概念上讲,系统中各进程在逻辑上是独立的,它们可以按各自的速度向前推进。

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

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

《计算机算法设计与分析》习题及答案一.选择题1、二分搜索算法是利用( A )实现的算法。

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

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

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

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、O(n2n)B、O(nlogn)C、O(2n)D、O(n)13.分支限界法解最大团问题时,活结点表的组织形式是( B )。

A、最小堆B、最大堆C、栈D、数组14.最长公共子序列算法利用的算法是( B )。

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

A、分治法B、动态规划法C、贪心法D、回溯法16.下面是贪心算法的基本要素的是( C )。

A、重叠子问题B、构造最优解C、贪心选择性质D、定义最优解17.回溯法的效率不依赖于下列哪些因素( D )A.满足显约束的值的个数B. 计算约束函数的时间C.计算限界函数的时间D. 确定解空间的时间18.下面哪种函数是回溯法中为避免无效搜索采取的策略( B )A.递归函数 B.剪枝函数 C。

计算机算法测试题及答案

计算机算法测试题及答案

计算机算法测试题及答案一、选择题(每题2分,共20分)1. 以下哪种排序算法的时间复杂度是O(nlogn)?A. 冒泡排序B. 选择排序C. 快速排序D. 插入排序答案:C2. 在计算机科学中,递归算法的基本思想是什么?A. 重复执行相同的操作B. 将问题分解为更小的子问题C. 循环调用自身D. 随机选择算法答案:B3. 以下哪个数据结构不是线性数据结构?A. 数组B. 链表C. 树D. 图答案:D4. 在数据库管理系统中,用于表示数据表之间关系的是:A. 索引B. 视图C. 键D. 触发器答案:C5. 以下哪种算法是解决图的最短路径问题的?A. 深度优先搜索B. 广度优先搜索C. 迪杰斯特拉算法D. 快速排序答案:C二、填空题(每题3分,共30分)1. 在计算机算法中,______算法是一种通过不断交换相邻元素来达到排序目的的算法。

答案:冒泡排序2. 一个算法的时间复杂度为O(n^2),这意味着算法的执行时间随着输入规模的增加而______。

答案:平方增长3. 在面向对象编程中,______是对象之间共享的属性和方法的集合。

答案:类4. 在关系型数据库中,______用于唯一标识表中的每一条记录。

答案:主键5. 在图的遍历算法中,______算法可以用于找到从起始顶点到图中所有其他顶点的最短路径。

答案:迪杰斯特拉三、简答题(每题10分,共50分)1. 请简述什么是贪心算法,并给出一个贪心算法的应用实例。

答案:贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好或最优的算法。

贪心算法在每一步选择时都采取在当前状态下最好或最优的选择,而不考虑子问题的解,不能保证会得到最优解。

一个典型的贪心算法应用实例是霍夫曼编码,它通过选择最短的编码来压缩数据,从而实现数据的有效压缩。

2. 描述一下什么是动态规划算法,并给出一个动态规划算法的实例。

答案:动态规划是一种通过将复杂问题分解为更简单的子问题来解决的方法,它通过存储这些子问题的解来避免重复计算,从而提高算法的效率。

计算机算法复习题及答案(前三章)

计算机算法复习题及答案(前三章)

计算机算法复习题及答案(前三章)第一章1、什么是绝对误差?什么是相对误差?答:绝对误差等于准确值与近似值差的绝对值。

相对误差是近似数的误差与准确值的比值。

2、什么是绝对误差限?什么是相对误差限?答:绝对误差限为绝对误差的“上界”相对误差限为相对误差绝对值的“上界”3、有效数字与绝对误差限有何关系?有效数字与相对误差限有何关系?答:(绝对)若近似值的绝对误差限是某一位上的半个单位,且该位直到的第一位非零数字一共有几位。

则称近似值有n位有效数字。

(相对)设近似值=±0.···×有n位有效数字,≠0,则真相对误差限为×设近似值=±0.···×的相对误差限为×,≠0,则它有n位有效数字。

4、例1.11、例1.12、例1.15、例1.16.例1.11.设x=4.26972,那么取2位,=4.3,有效数字为2位取3位,=4.27,有效数字为3位取4位,=4.270,有效数字为4位取5位,=4.2697,有效数字为5位例1.12,若=3587.64是x的具有6位有效数字的近似值,则误差限是|-x|≤×=×若=0.0023156是x的具有5位有效数字的近似值,则误差限是|-x|≤×≤×例1.15,若=2.72来表示e的具有3位有效数字的近似值,则相对误差限是=×=×例1.16要使的近似值的相对误差限小于0.1%,要取几位有效数字?由定理1.1,≤×.由于=4.4···,已知=4,故只要取n=4,就有≤0.125×=0.1%只要对的近似值取4位有效数字,其相对误差限就小于0.1%。

此时由开方表得≈4.472 5、课本13~14页习题1、2、3、4.习题1:下列各数都是经过四舍五入得到的近似数,试指出它们是具有几位有效数字的近似数,并确定++和的误差限答:=1.1021,5位,=0.031,2位,=385.6,4位|++|-|++|≤|-|+|-|+|-|=×+×+×=0.5055 η()≈||η()+|η()|=1.1021××+0.031××=0.00055105+0.00000155=0.0005526η()≈||η()+||η() =0.001708255+0.21308256 =0.2148习题2.已测得某场地长L 的值为=110m ,宽d 的值为=80m,已知|L-|≤0.2m ,|d-|≤0.1m ,试求面积S=Ld 的绝对误差限和相对误差限。

算法考试试题及答案

算法考试试题及答案

一、填空题(本题10分,每空1分)1、算法的复杂性是的度量,是评价算法优劣的重要依据。

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

i=1; k=0;while(i<n) { k=k+10*i;i++; }3、计算机的资源最重要的是和资源.因而,算法的复杂性有和之分。

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

6、分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相且与原问题相同.二、选择题(本题20分,每小题2分)1、分支限界法与回溯法都是在问题的解空间树T上搜索问题的解,二者( )。

A。

求解目标不同,搜索方式相同 B。

求解目标不同,搜索方式也不同C。

求解目标相同,搜索方式不同D。

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

A。

深度优先 B。

广度优先 C。

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

A.回溯法 B。

分支限界法 C.回溯法和分支限界法D。

回溯法求解子集树问题4、以下关于判定问题难易处理的叙述中正确的是( ).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)的阶( )g(N)的阶。

A。

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

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

算法设计与分析试卷一、填空题(20分,每空2分)1、算法的性质包括输入、输出、___、有限性。

2、动态规划算法的基本思想就将待求问题_____、先求解子问题,然后从这些子问题的解得到原问题的解。

3、设计动态规划算法的4个步骤:(1)找出____,并刻画其结构特征。

(2)_______。

(3)_______。

(4)根据计算最优值得到的信息,_______。

4、流水作业调度问题的johnson算法:(1)令N1=___,N2={i|ai>=bj};(2)将N1中作业依ai的___。

5、对于流水作业高度问题,必存在一个最优调度π,使得作业π(i)和π(i+1)满足Johnson不等式_____。

6、最优二叉搜索树即是___的二叉搜索树。

二、综合题(50分)1、当(a1,a2,a3,a4,a5,a6)=(-2,11,-4,13,-5,-2)时,最大子段和为∑ak(2<=k<=4)____(5分)2、由流水作业调度问题的最优子结构性质可知,T(N,0)=______(5分)3、最大子段和问题的简单算法(10分)int maxsum(int n,int *a,int & bestj){intsum=0;for (int i=1;i<=n;i++)for (int j=i;j<=n;j++)int thissum=0;for(int k=i;k<=j;k++)_____;if(thissum>sum){sum=thissum;______;bestj=j;}} return sum;}4、设计最优二叉搜索树问题的动态规划算法OptimalBinarysearchTree (15分)Void OptimalBinarysearchTree(int a,int n,int * * m, int* * w){for(int i=0;i<=n;i++) {w[i+1][i]=a[i]; m[i+1][i]=____;}for(int r=0;r<n;r++)for(int i=1;i<=n-r;i++){int j=i+r;w[i][j]=w[i][j-1]+a[j]+b[j];m[i][j]=______;s[i][j]=i;for(int k=i+1;k<=j;k++){int t=m[i][k-1]+m[k+1][j];if(_____) {m[i][j]=t; s[i][j]=k;}}m[i][j]=t; s[i][j]=k;}}5、设n=4, (a1,a2,a3,a4)=(3,4,8,10), (b1,b2,b3,b4)=(6,2,9,15) 用两种方法求4个作业的最优调度方案并计算其最优值(15分)三、简答题(30分)1、将所给定序列a[1:n]分为长度相等的两段a[1:n/2]和a[n/2+1:n],分别求出这两段的最大子段和,则a[1:n]的最大子段和有哪三种情形(10分)答:2、由0——1背包问题的最优子结构性质,可以对m(i,j)建立怎样的递归式 (10分)3、0——1背包求最优值的步骤分为哪几步(10分)参考答案:填空题:确定性分解成若干个子问题最优解的性质递归地定义最优值以自底向上的方式计算出最优值构造最优解 {i|ai<bi} ai的非减序排序;将N2中作业依bi的非增序排序min{bπ(i),aπ(i+1)}≥min{bπ(i+1),aπ(i)}最小平均查找长度综合题:20 min{ai+T(N-{i},bi)}(1=<i<=n) thissum+=a[k] besti=i 0 m[i+1][j] t<m[i][j]法一:min(ai,bj)<=min(aj,bi)因为 min(a1,b2)<=min(a2,b1)所以 1→2 (先1后2)由 min(a1,b3)<=min(a3,b1)得 1→3 (先1后3)同理可得:最后为1→3→4→2法二:johnson算法思想N1={1,3,4} N2={2}N¹1={1,3,4} N¹2={2}所以 N¹1→N¹2得:1→3→4→2简答题:1 、(1)a[1:n]的最大子段和与a[1:n/2]的最大子段和相同。

(2)a[1:n]的最大子段和与的最大子段a[n/2+1:n]和相同。

(3)a[1:n]的最大子段和为∑ak(i=<k<=J),且1<=i<=n/2,n/2+1<=J<=n。

2、(1)m(i,j)=max{m(i+1,j),m(i+1,j-wi)+ui} (j>=wi)或则 m(i,j)= m(i+1,j) (0<=j<wi)(2)m(n,j)=un j>=wn 或则m(n,j)=0 0<=j<wn3、(1)、p[n+1]={(0,0)}(2)、由p[i+1]→q[i+1], q[i+1]=p[i+1]⊕(wi,vi)(3)、Mij=p[i+1]∪q[i+1]Pi=Mij——其中的受控点=p[i+1]∪q[i+1]——其中的受控(4)、重复(2)-(3)直到求出P[1]1.在一个算法中调用另一个算法时,系统需在运行被调用算法之前完成哪些工作同时从被调用算法返回调用算法需完成哪些工作答:在一个算法中调用另一算法时,系统需在运行被调用算法之前先完成三件事:(1)将所有实参指针、返回地址等信息传递给被调用算法;(2)为被调用算法的局部变量分配存储区;(3)将控制转移到被调用算法的入口。

在从被调用算法返回调用算法时需完成三件事:(1)保存被调用算法的计算结果;(2)释放分配给被调用算法的数据区;(3)依照被调用算法保存的返回地址将控制转移到调用算法。

2.动态规划算法求解问题的步骤答:动态规划法适用于解最优化问题。

通常可以按以下4个步骤设计:(1)找出最优解的性质,并刻画其结构特征;(2)递归地定义最优值;(3)以自底向上的方式计算最优值;(4)根据计算最优值时得到的信息构造最优解。

3.线性规划法中单纯形算法的基本步骤答:步骤一选入基变量。

步骤二选离基变量。

步骤三做转轴变换。

步骤四转步骤一。

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

递归地解这些子问题,然后将各子问题的解合并得到原问题的解。

5.利用回溯法解决问题包含哪些步骤答:利用回溯法解题常包含以下3步骤:(1)针对所给问题,定义问题的解空间;(2)确定易于搜索的解空间结构;(3)以深度优先方式搜索解空间,并在搜索过程中用剪枝函数避免无效搜索。

五分析题(36分)1.求下列函数的渐进表达式:3n2+10n; n2/10+2n; 21+1/n; logn3; 10log3n分析与解答:3n2+10n=O(n2);n2/10+2n=O(2n);21+1/n=O(1);logn3=O(logn);10log3n=O(n)2.讨论O(1)和O(2)的区别。

分析与解答:根据符号O的定义易知O(1)=O(2)。

用O(1)或O(2)表示同一个函数时,差别仅在于其中的常数因子。

3.按渐近阶排列表达式按照渐近阶从低到高的顺序排列以下表达式:4n 2,logn ,3n ,20n ,2,n 2/3。

又n!应该排在哪一位分析与解答:按渐近阶从低到高,函数排列顺序如下:2,logn ,n 2/3,20n ,4n 2,3n ,n !。

4.算法效率(1)假设某算法在输入规模为n 时计算时间为T(n)=3*2n 。

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

现有另一台计算机,其运行速度为第一台的64倍,那么在这台新机器上用同一算法在t 秒内能解输入规模为多大的问题(2)若上述算法的计算时间改进为T(n)=n 2,其余条件不变,则在新机器上用t 秒时间能解输入规模为多大的问题(3)若上述算法的计算时间进一步改进为T(n)=8,其余条件不变,那么在新机器上用t 秒时间能解输入规模为多大的问题分析解答:(1)设新机器用同一算法在t 秒内能解输入规模为n1的问题。

因此有:t=3*22=3*2n1/64,解得你n1=n+6。

(2)n12=64n 2n1=8n 。

(3)由于T(n)=常数,因此算法可解任意规模的问题。

5.阶乘函数阶乘函数可递归地定义为:int factorial(int n){0)!1(1!>=⎩⎨⎧-=n n n n nif(n==0) return 1;return n* factorial(n-1);}6.Fibonacci 数列无穷数列1,1,2,3,5,8,13,21,34,55,……,称为Fibonacci 数列。

它可以递归地定义为:请对这个无穷数列设计一个算法,并进行描述(自然语言描述和VC++描述).第n 个Fibonacci 数可递归地计算如下:int fibonacci (int n){if (n <= 1) return 1;returnfibonacci (n-1)+fibonacci (n-2);}7.循环赛日程表设有n=2k个运动员要进行兵乓球循环赛。

现在要设计一个满足以下要求的比赛日程表:(1)每个选手必须与其他n-1个选手各赛一次;(2)每个选手一天只能赛一次;(3)循环赛一共进行n-1天。

请设计一个算法解决以上问题,并进行描述(自然语言和C++语言)110)2()1(11)(>==⎪⎩⎪⎨⎧-+-=n n n n F n F n F按分治策略,将所有的选手分为两半,n个选手的比赛日程表就可以通过为n/2个选手设计的比赛日程表来决定。

递归地用对选手进行分割,直到只剩下2个选手时,比赛日程表的制定就变得很简单。

这时只要让这2个选手进行比赛就可以了。

8.有一批集装箱要装上一艘载重量为c的轮船。

其中集装箱i的重量为Wi。

最优装载问题要求确定在装载体积不受限制的情况下,将尽可能多的集装箱装上轮船。

分析回答以下两个问题:(1)分析以上最优装载问题具有贪心选择性质(2)用C++程序进行正确的算法描述分析与解答:(1)设集装箱已依其重量从小到大排序,(x1,x2,…,x n)是最有装载问题的一个最优解。

又设k=min{i|x i=1}。

易知,如果给定的最有装载问题有解,则1≤k≤n。

②当k=1时,(x1,x2,…,x n)是满足贪心选择性质的最优解。

②当k>1时,取y1=1;y k=0;y i=x i,1<i≤n,i≠k,则因此,()是所给最有装载问题的可行解。

另一方面,由知,()是满足贪心选择性质的最优解。

相关文档
最新文档