计算机算法试题含答案

合集下载

《算法与程序设计》试题带答案

《算法与程序设计》试题带答案

12、在调试程序的时候,经常要设置断点,设置断点的快捷键是()高一第二学期《算法与程序设计》学分认定试题A、F1B、F8C、F9D、F1213、算法描述可以有多种表达方法,下面哪些方法不可以描述“闰年问题”的算法()学校:_____________ 班级:____________ 学号:____________ 姓名:____________ A、自然语言B、流程图C、伪代码D、机器语言14、以下不属于非法用户自定义标识符(常量和变量命名)的是()一、单选题(每小题 3 分,20 小题,共60 分)A、8adB、ad8C、_a8dD、const1、用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于15、已知A,B,C,D 是整型变量,且都已有互不相同的值,执行语句B=0;A=C ;D=A ;D=B ;后,其值相等的用计算机解决问题的哪一个步骤?()变量是()A、分析问题B、设计算法C、编写程序D、调试程序A、A,DB、A,CC、C,BD、B,A2、在调试程序过程中,下列哪一种错误是计算机检查不出来的?()16、要交换变量 A 和B 的值,应使用的语句组是( )A、编译错误B、执行错误C、逻辑错误D、任何错误计算机都能检查出来A、A=B ;B=C;C=AB、C=A ;A=B ;B=C3、下列关于算法的叙述中,错误的是()C、A=B ;B=AD、C=A ;B=A ;B=CA、一个算法至少有一个输入和一个输出17、Visual Basic 中以单引号开头一行文字称为注释,它对程序的运行()B、算法的每一个步骤必须确切地定义A、起一定作用 B 、有时候起作用C、一个算法在执行有穷步之后必须结束C、不起任何作用,但是必须的D、不起任何作用,但能增加程序的可阅读性D、算法中有待执行的运算和操作必须是相当基本的。

18、要使一个命令按钮显示文字“确定”,正确的设置是把该命令按钮的()。

计算机图形学算法面试题及答案

计算机图形学算法面试题及答案

计算机图形学算法面试题及答案计算机图形学是研究如何使用计算机生成和处理图像的学科。

在图形学算法面试中,面试官通常会问一些关于图形学中常见算法的问题。

这些问题涵盖了基本的数学运算、数据结构和图像处理原理等方面。

以下是一些常见的计算机图形学算法面试题及其答案。

1. Bresenham 线段生成算法是什么?如何优化?Bresenham 线段生成算法是一种用于在离散化的笛卡尔坐标系中生成直线的算法。

它通过寻找最接近理想路径的像素来逐步生成线段。

算法的基本思想是计算连续像素之间的差值,并使用该差值来决定下一个像素的位置。

优化方法包括使用对称性减少计算量、使用整数运算代替浮点运算以提高速度等。

2. DDA 算法和 Bresenham 算法有何区别?DDA (Digital Differential Analyzer) 算法是另一种用于生成直线的算法。

与 Bresenham 算法不同,DDA 算法使用浮点数运算来计算每个像素的坐标。

这使得 DDA 算法更易于理解和实现,但在处理大量像素时,速度较慢。

3. 什么是光线追踪算法?光线追踪算法是一种用于生成逼真图像的渲染算法。

它通过模拟光线在场景中的传播路径,计算光线与物体交互的方式来生成图像。

与传统的基于多边形的渲染算法不同,光线追踪算法可以模拟更复杂的光照效果,如阴影、反射、折射等。

4. 什么是均值漂移算法?均值漂移算法是一种用于图像分割和聚类的算法。

它通过对数据点周围的局部密度进行估计,将相似的数据点聚集到一起,从而实现图像的分割。

算法的基本原理是通过不断移动数据点的均值来逐步收敛于聚类的中心。

5. 傅里叶变换在图形学中有哪些应用?傅里叶变换在图形学中有广泛的应用。

其中一种常见的应用是图像滤波。

通过将图像转换到频域进行滤波,可以实现图像的模糊、锐化、边缘检测等效果。

另外,傅里叶变换还可以用于纹理分析、形状匹配等图形学任务。

6. 列举几种曲线插值算法。

曲线插值是一种通过已知点来近似生成曲线的技术。

计算机算法设计与分析-试题

计算机算法设计与分析-试题

计算机算法设计与分析期末试题一。

选择题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 )。

算法与程序设计模拟试题附答案

算法与程序设计模拟试题附答案

算法与程序设计模拟试题一、单项选择题1.穷举法的适用范围是()。

A.一切问题B.解的个数极多的问题C.解的个数有限且可一一列举D.不适合设计算法2.通过多重循环一一列举出解决问题的所有可能解,并在逐一列举的过程中,检验每个可能的解是否是问题的真正解的算法是(),而从实际问题中归纳出数学解析式,就此设计出合适的算法是()。

A.解析法穷举法B.递归法解析法C.穷举法解析法D.穷举法,递归法3.判断某自然数m是不是素数(只能被1或本身整除的大于1的自然数称为素数)的算法基本思想是:把m作为被除数,将2到m-1中的自然数作为除数,逐一进行相除,如果都除不尽,m就是素数,否则m 就不是素数。

这种判定素数的算法属于()。

A.枚举算法B.解析算法C.递归算法D.排序算法4.图书管理系统对图书管理是按图书的序号从小到大进行管理的,若要查找一本已知序号的书,则能快速的查找的算法是()。

A.枚举算法B.解析算法C.对分查找D.冒泡排序5.VB程序如下:Dim aa = Array(1,2,3,4,5,6,7,8)i = 0For k = 100 To 90 Step -2s = a(i)^2If a(i) > 3 Then Exit Fori = i + 1Next kPrint k;a(i);s上述程序的输出结果是()。

A.88 6 36B.88 1 2C.90 2 4D.94 4 166.在所有排序算法中,关键字比较次数与纪录的初始排列次序无关的是()。

A.希尔排序B.起泡排序C.插入排序D.选择排序7.在使用计算机处理数据的过程中,往往需要对数据进行排序,所谓排序就是()。

A.把杂乱无章的数据变为从小到大排列的数据B.把杂乱无章的数据变为从大到小排列的数据C.把杂乱无章的数据变为有序的数据D.以上说法都错误8.某食品连锁店5位顾客贵宾消费卡的积分依次为900、512、613、700、810,若采用选择排序算法对其进行从小到大排序,如下表,第二趟的排序结果是()A.512 613 700 900 810 B.512 810 613 900 700C.512 900 613 700 810D.512 613 900 700 8109.在《算法与程序设计》教材中,主要介绍了下列“算法”()。

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

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

计算机算法基础试题及答案一、选择题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套(含答案)

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

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

不存在二义性。

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

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

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

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

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

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

经常采用的算法主要有迭代法、分而治之法、贪婪法、动态规划法、回溯法、分支限界法利用迭代算法解决问题,需要做好以下三个方面的工作:一、确定迭代模型。

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

二、建立迭代关系式。

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

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

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

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

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

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

《算法分析与设计》期末试题及参考答案

《算法分析与设计》期末试题及参考答案

《算法分析与设计》期末试题及参考答案一、简要回答下列问题:1.算法重要特性是什么?1. 确定性、可行性、输入、输出、有穷性2.2.算法分析的目的是什么?2. 分析算法占用计算机资源的情况,对算法做出比较和评价,设计出额更好的算法。

3.3.算法的时间复杂性与问题的什么因素相关?3. 算法的时间复杂性与问题的规模相关,是问题大小n的函数。

4.算法的渐进时间复杂性的含义?4.当问题的规模n趋向无穷大时,影响算法效率的重要因素是T(n)的数量级,而其他因素仅是使时间复杂度相差常数倍,因此可以用T(n)的数量级(阶)评价算法。

时间复杂度T(n)的数量级(阶)称为渐进时间复杂性。

5.最坏情况下的时间复杂性和平均时间复杂性有什么不同?5. 最坏情况下的时间复杂性和平均时间复杂性考察的是n固定时,不同输入实例下的算法所耗时间。

最坏情况下的时间复杂性取的输入实例中最大的时间复杂度:W(n) = max{ T(n,I) } , I∈Dn平均时间复杂性是所有输入实例的处理时间与各自概率的乘积和:A(n) =∑P(I)T(n,I) I∈Dn6.简述二分检索(折半查找)算法的基本过程。

6. 设输入是一个按非降次序排列的元素表A[i:j] 和x,选取A[(i+j)/2]与x比较,如果A[(i+j)/2]=x,则返回(i+j)/2,如果A[(i+j)/2]<x,则A[i:(i+j)/2-1]找x,否则在A[ (i+j)/2+1:j] 找x。

上述过程被反复递归调用。

7.背包问题的目标函数和贪心算法最优化量度相同吗?7. 不相同。

目标函数:获得最大利润。

最优量度:最大利润/重量比。

8.采用回溯法求解的问题,其解如何表示?有什么规定?8. 问题的解可以表示为n元组:(x1,x2,……x n),x i∈S i, S i为有穷集合,x i∈S i, (x1,x2,……x n)具备完备性,即(x1,x2,……x n)是合理的,则(x1,x2,……x i)(i<n)一定合理。

数据结构与算法测试题+参考答案

数据结构与算法测试题+参考答案

数据结构与算法测试题+参考答案一、单选题(共80题,每题1分,共80分)1、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用什么存储方式最节省运算时间?A、仅有头指针的单循环链表B、双链表C、仅有尾指针的单循环链表D、单链表正确答案:C2、数据结构研究的内容是()。

A、数据的逻辑结构B、数据的存储结构C、建立在相应逻辑结构和存储结构上的算法D、包括以上三个方面正确答案:D3、下列关于无向连通图特征的叙述中,正确的是:所有顶点的度之和为偶数边数大于顶点个数减1至少有一个顶点的度为1A、只有1B、1和2C、1和3D、只有2正确答案:A4、下面的程序段违反了算法的()原则。

void sam(){ int n=2;while (n%2==0) n+=2;printf(“%d”,n);}A、确定性B、可行性C、有穷性D、健壮性正确答案:C5、对任意给定的含 n (n>2) 个字符的有限集 S,用二叉树表示 S 的哈夫曼编码集和定长编码集,分别得到二叉树 T1 和 T2。

下列叙述中,正确的是:A、出现频次不同的字符在 T2 中处于相同的层B、出现频次不同的字符在 T1 中处于不同的层C、T1 的高度大于 T2 的高度D、T1 与 T2 的结点数相同正确答案:A6、数据序列{ 3,2,4,9,8,11,6,20 }只能是下列哪种排序算法的两趟排序结果?A、快速排序B、选择排序C、插入排序D、冒泡排序正确答案:A7、设散列表的地址区间为[0,16],散列函数为H(Key)=Key%17。

采用线性探测法处理冲突,并将关键字序列{ 26,25,72,38,8,18,59 }依次存储到散列表中。

元素59存放在散列表中的地址是:A、11B、9C、10D、8正确答案:A8、采用递归方式对顺序表进行快速排序,下列关于递归次数的叙述中,正确的是:A、每次划分后,先处理较短的分区可以减少递归次数B、递归次数与每次划分后得到的分区处理顺序无关C、递归次数与初始数据的排列次序无关D、每次划分后,先处理较长的分区可以减少递归次数正确答案:B9、以下数据结构中,()是非线性数据结构。

试题1

试题1

第1章绪论一、选择题1.计算机算法指的是()。

A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法2.从逻辑上可以把数据结构分为()两大类。

A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构3.以下与数据的存储结构无关的术语是()。

A.循环队列 B. 链表 C. 哈希表 D. 栈4.以下数据结构中,哪一个是线性结构()?A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串5.在下面的程序段中,对x的赋值语句的频度为()FOR (i=1;i<=n;i++)FOR (j=1;j<=n;j++)X++;A. 2n B.n C.n2 D.log2n12.程序段 FOR ( i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中 n为正整数,则最后一行的语句频度在最坏情况下是()A. O(n)B. O(nlogn)C. O(n3)D. O(n2) 【南京理工大学1998一、1(2分)】13.以下哪个数据结构不是多型数据类型()【中山大学 1999 一、3(1分)】A.栈 B.广义表 C.有向图 D.字符串14.以下数据结构中,()是非线性数据结构【中山大学 1999 一、4】A.树 B.字符串 C.队 D.栈15. 下列数据中,()是非线性数据结构。

【北京理工大学 2001 六、1(2分)】A.栈 B. 队列 C. 完全二叉树 D. 堆16.连续存储设计时,存储单元的地址()。

【中山大学 1999 一、1(1分)】A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续17.以下属于逻辑结构的是()。

【西安电子科技大学应用 2001一、1】A.顺序表 B. 哈希表 C.有序表 D. 单链表参考答案第1题答案是C 计算机算法指的是对特定问题的求解步骤。

计算机算法面试题及答案

计算机算法面试题及答案

计算机算法面试题及答案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的阶乘。

算法设计与分析试卷试题(A)(附答案)

算法设计与分析试卷试题(A)(附答案)

chengcheng算法分析考试试卷(A卷)课程名称算法分析编号题号一二三四总分得分评阅人一、填空题(每小题3分,共30分)1、一个算法的优劣可以用空间复杂度与时间复杂度来衡量。

2、这种不断回头寻找目标的方法称为回溯法。

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

4、 记号在算法复杂性的表示法中表示紧致界。

5、由分治法产生的子问题往往是原问题较小模式,这就为使用递归技术提供了方便。

6、建立计算模型的目的是为了使问题的计算复杂性分析有一个共同的客观尺度。

7、下列各步骤的先后顺序是②③④①。

①调试程序②分析问题③设计算法④编写程序。

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

9、贪心算法从初始阶段开始,每一个阶段总是作一个使局部最优的贪心选择。

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

二、选择题(每小题2分,共20分)1、哈夫曼编码可利用( C )算法实现。

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

A、RAMB、ROMC、RASPD、TM3、下列算法中通常以自顶向下的方式求解最优解的是( C)。

A、分治法B、动态规划法C、贪心法D、回溯法chengcheng 4、在对问题的解空间树进行搜索的方法中,一个活结点有多次机会成为活结点的是( A )A、回溯法B、分支限界法C、回溯法和分支限界法D、动态规划5、秦始皇吞并六国使用的远交近攻,逐个击破的连横策略采用了以下哪种算法思想? BA、递归;B、分治;C、迭代;D、模拟。

6、FIFO是( A )的一搜索方式。

A、分支界限法B、动态规划法C、贪心法D、回溯法7、投点法是( B )的一种。

A、分支界限算法B、概率算法C、贪心算法D、回溯算法8、若线性规划问题存在最优解,它一定不在( C )A.可行域的某个顶点上 B.可行域的某条边上 C.可行域内部 D.以上都不对9、在一般输入数据的程序里,输入多多少少会影响到算法的计算复杂度,为了消除这种影响可用( B )对输入进行预处理。

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

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

计算机计算方法试题及答案一、选择题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、多项式10()m m A n a n a n a =+++的上界为O(n m )。

3、算法的基本特征:输入、输出、确定性、有限性。

4、如何从两个方面评价一个算法的优劣:时间复杂度、空间复杂度。

5、计算下面算法的时间复杂度记为: O(n 3) 。

for(i=1;i<=n;i++)for(j=1;j<=n;j++){c[i][j]=0;for(k=1;k<=n;k++)c[i][j]= c[i][j]+a[i][k]*b[k][j];}6、描述算法常用的方法:自然语言、伪代码、程序设计语言、流程图、盒图、PAD 图。

7、算法设计的基本要求:正确性 和 可读性。

8、计算下面算法的时间复杂度记为: O(n 2) 。

for (i =1;i<n; i++){ y=y+1;for (j =0;j <=2n ;j++ )x ++;}9、计算机求解问题的步骤:问题分析、数学模型建立、算法设计与选择、算法表示、算法分析、算法实现、程序调试、结果整理文档编制。

10、算法是指解决问题的 方法或过程 。

二、简答题:1、按照时间复杂度从低到高排列:O( 4n 2)、O( logn)、O( 3n )、O( 20n)、O( 2)、O( n 2/3),O( n!)应该排在哪一位?答:O( 2),O( logn),O( n 2/3),O( 20n),O( 4n 2),O( 3n ),O( n!)2、什么是算法?算法的特征有哪些?答:1)算法:指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程。

通俗讲,算法:就是解决问题的方法或过程。

2)特征:1)算法有零个或多个输入;2)算法有一个或多个输出; 3)确定性 ; 4)有穷性3、给出算法的定义?何谓算法的复杂性?计算下例在最坏情况下的时间复杂性?for(j=1;j<=n;j++) (1)for(i=1;i<=n;i++) (2) {c[i][j]=0; (3)for(k=1;k<=n;k++) (4)c[i][j]= c[i][j]+a[i][k]*b[k][j]; } (5)答:1)定义:指在解决问题时,按照某种机械步骤一定可以得到问题结果的处理过程。

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

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

算法设计与分析试卷一、填空题(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]的最大子段和相同。

《算法与程序设计》试题带答案

《算法与程序设计》试题带答案

高一第二学期《算法与程序设计》学分认定试题学校:_____________ 班级:____________ 学号:____________ 姓名:____________一、单选题(每小题3分,20小题,共60分)1、用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?()A、分析问题B、设计算法C、编写程序D、调试程序2、在调试程序过程中,下列哪一种错误是计算机检查不出来的?()A、编译错误B、执行错误C、逻辑错误D、任何错误计算机都能检查出来3、下列关于算法的叙述中,错误的是()A、一个算法至少有一个输入和一个输出B、算法的每一个步骤必须确切地定义C、一个算法在执行有穷步之后必须结束D、算法中有待执行的运算和操作必须是相当基本的。

4、流程图中表示判断的是()。

A、矩形框B、菱形框C、圆形框D、椭圆形框5、任何复杂的算法都可以用三种基本结构组成,下列不属于基本结构的是()A、顺序结构B、选择结构C、层次结构D、循环结构6、能够被计算机直接识别的语言是()A、伪代码B、高级语言C、机器语言D、汇编语言7、在VB语言中,下列数据中合法的长整型常量是()A、08AB、2380836EC、88.12345D、1.2345E68、求Mid(“ABCDEFG”,3,2)的结果是()A、“ABC”B、“CD”C、“ABCDEF”D、“BCD”9、表达式 A+B+C<D AND A>=3 OR NOT C<0 OR D>0当A=3,B=4,C=-5,D=6时的运算结果是()A、0B、1C、TRUED、FALSE10、在循环语句 For x=1 to 100 step 2……Next x 中,x能达到的最大值是()A、100B、99C、98D、9711、在下列选项中,不属于VB的对象的是()A、窗体的背景颜色B、命令按钮C、文本框D、标签12、在调试程序的时候,经常要设置断点,设置断点的快捷键是()A、F1B、F8C、F9D、F1213、算法描述可以有多种表达方法,下面哪些方法不可以描述“闰年问题”的算法()A、自然语言B、流程图C、伪代码D、机器语言14、以下不属于非法用户自定义标识符(常量和变量命名)的是()A、8adB、ad8C、_a8dD、const15、已知A,B,C,D是整型变量,且都已有互不相同的值,执行语句B=0;A=C;D=A;D=B;后,其值相等的变量是()A、A,DB、A,CC、C,BD、B,A16、要交换变量A和B的值,应使用的语句组是( )A、A=B;B=C;C=AB、C=A;A=B;B=CC、A=B;B=AD、C=A;B=A;B=C17、Visual Basic中以单引号开头一行文字称为注释,它对程序的运行()A、起一定作用B、有时候起作用C、不起任何作用,但是必须的D、不起任何作用,但能增加程序的可阅读性18、要使一个命令按钮显示文字“确定”,正确的设置是把该命令按钮的()。

计算机算法测试题及答案

计算机算法测试题及答案

计算机算法测试题及答案一、选择题(每题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. 描述一下什么是动态规划算法,并给出一个动态规划算法的实例。

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

东北师范大学“计算机科学与技术”《算法分析与设计》23秋期末试题库含答案

东北师范大学“计算机科学与技术”《算法分析与设计》23秋期末试题库含答案

东北师范大学“计算机科学与技术”《算法分析与设计》23秋期末试题库含答案第1卷一.综合考核(共20题)1.十六进制数5A.8转换为十进制数是()。

A.89.6B.90.1C.90.5D.96.82.设变量定义为char s[]=“hello”,则数组s中有6个元素。

()A.错误B.正确3.顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为()次。

A.n/2B.(n+1)/2C.(n-1)/2D.n4.一个n个顶点的连通无向图,其边的个数至少为()。

A.n-1B.nC.n+1D.nlogn5.下列排序方法中,哪一个是稳定的排序方法?()A.直接选择排序B.二分法插入排序C.希尔排序D.快速排序6.快速排序的基本思想是将每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序﹔直到待排序数据元素全部插入完为止。

()A.错误B.正确7.字符数组的初始化可以逐个元素进行初始化。

()A.错误B.正确8.冒泡排序是一种不稳定排序方法。

()A.错误B.正确9.下列叙述中正确的是()。

A.顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B.顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C.顺序存储结构能存储有序表,链式存储结构不能存储有序表D.链式存储结构比顺序存储结构节省存储空间10.()是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境等等。

A.VSB.VMC.Dev-C++D.IDE11.二进制的基数是()。

A.2B.8C.10D.1612.十进制算术表达式:3*512+7*64+4*8+5的运算结果,用二进制表示为()。

A.10111100101B.11111100101C.11110100101D.1111110110113.顺序结构、选择结构、循环结构三种结构共同特点是()A.只有一个入口B.只有一个出口C.结构内的每一部分都有机会被执行到(不存在死语句)D.结构内不存在死循环(永远执行不完的循环)14.对于任意一棵二叉树,如果度为0的结点个数为n₀,度为2的结点个数为n₂,则n₀=n₂+1。

算法考试试题及答案

算法考试试题及答案

一、填空题(本题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){if(n==0) return 1;return n* factorial(n-1);}0)!1(1!>=⎩⎨⎧-=n n n n n6.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++语言)按分治策略,将所有的选手分为两半,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时,取y 1=1;y k =0;y i =x i ,1<i ≤n,i ≠k,则110)2()1(11)(>==⎪⎩⎪⎨⎧-+-=n n n n F n F n F因此,()是所给最有装载问题的可行解。

相关文档
最新文档