中南民族大学算法复习资料(习题-中文版)

合集下载

中南民族大学 10套计算机C语言 期末考试复习试题及答案

中南民族大学 10套计算机C语言 期末考试复习试题及答案

一、判断共10题(共计10分)第1题(1.0分)题号:1488函数即可以嵌套定义,又可以嵌套调用.答案:N第2题(1.0分)题号:1256unsigned 和void 在C中都是保留字.答案:Y第3题(1.0分)题号:1280表达式++i表示对变量i自加1.答案:Y第4题(1.0分)题号:1282C语言源程序的基本结构单位是main函数.答案:N第5题(1.0分)题号:1276字符常量的长度肯定为1.答案:Y第6题(1.0分)题号:1469char a[]={'a','b','c'};char b[]={"abc"};数组a和数组b占用的内存空间大小不一样. 答案:Y第7题(1.0分)题号:1249若有int i=10,j=2; 则执行完i*=j+8;后i的值为28.答案:N第8题(1.0分)题号:33int i,*p=&i;是正确的C说明。

答案:Y第9题(1.0分)题号:1250While循环语句的循环体至少执行一次.答案:N第10题(1.0分)题号:1510有数组定义int a[2][2]={{1},{2,3}};则a[0][1]的值为0.答案:Y二、单项选择共30题(共计30分)第1题(1.0分)题号:456执行下面程序后,输出结果是()。

main(){ a=45,b=27,c=0;c=max(a,b);printf("%d\n",c);}int max(x,y)int x,y;{ int z;if(x>y) z=x;else z=y;return(z);}A:45B:27C:18D:72答案:A第2题(1.0分)题号:437下列数组说明中,正确的是()。

A:int array[][4];B:int array[][];C:int array[][][5];D:int array[3][];答案:A第3题(1.0分)题号:2396下面有关for循环的正确描述是()A:for循环只能用于循环次数已经确定的情况B:for循环是先执行循环体语句,后判断表达式C:在for循环中,不能用break语句跳出循环体D:for循环的循环体语句中,可以包含多条语句,但必须用花括号括起来答案:D第4题(1.0分)题号:2817以下程序的输出结果是().main(){int i,j,k,a=3,b=2;i=(--a==b++)?--a:++b;j=a++;k=b;printf("i=%d,j=%d,k=%d\n",i,j,k);}A:i=2,j=1,k=3B:i=1,j=1,k=2C:i=4,j=2,k=4D:i=1,j=1,k=3答案:D第5题(1.0分)题号:2866若有下列定义,则对a数组元素地址的正确引用是().int a[5],*p=a;A:*(p+5)B:*p+2C:*(a+2)D:*&a[5]答案:C第6题(1.0分)题号:711下列选项中正确的语句组是()。

算法导论复习资料

算法导论复习资料

算法导论复习资料一、选择题:第一章的概念、术语。

二、考点分析:1、复杂度的渐进表示,复杂度分析。

2、正确性证明。

考点:1)正确性分析(冒泡,归并,选择);2)复杂度分析(渐进表示O,Q,©,替换法证明,先猜想,然后给出递归方程)。

循环不变性的三个性质:1)初始化:它在循环的第一轮迭代开始之前,应该是正确的;2)保持:如果在循环的某一次迭代开始之前它是正确的,那么,在下一次迭代开始之前,它也应该保持正确;3)当循环结束时,不变式给了我们一个有用的性质,它有助于表明算法是正确的。

插入排序算法:INSERTION-SORT(A)1 for j ←2 to length[A]2 do key ←A[j]3 ▹Insert A[j] into the sorted sequence A[1,j - 1].4 i ←j - 15 while i > 0 and A[i] > key6 do A[i + 1] ←A[i]7 i ←i - 18 A[i + 1] ←key插入排序的正确性证明:课本11页。

归并排序算法:课本17页及19页。

归并排序的正确性分析:课本20页。

3、分治法(基本步骤,复杂度分析)。

——许多问题都可以递归求解考点:快速排序,归并排序,渐进排序,例如:12球里面有一个坏球,怎样用最少的次数找出来。

(解:共有24种状态,至少称重3次可以找出不同的球)不是考点:线性时间选择,最接近点对,斯特拉算法求解。

解:基本步骤:一、分解:将原问题分解成一系列的子问题;二、解决:递归地解各子问题。

若子问题足够小,则直接求解;三、合并:将子问题的结果合并成原问题的解。

复杂度分析:分分治算法中的递归式是基于基本模式中的三个步骤的,T(n)为一个规模为n的运行时间,得到递归式T(n)=Q(1) n<=cT(n)=aT(n/b)+D(n)+C(n) n>c附加习题:请给出一个运行时间为Q(nlgn)的算法,使之能在给定的一个由n个整数构成的集合S和另一个整数x时,判断出S中是否存在有两个其和等于x的元素。

算法设计与分析实验报告(中南民族大学)

算法设计与分析实验报告(中南民族大学)

院系:计算机科学学院专业:年级:课程名称:算法设计与分析基础班号:组号:指导教师:年月日实验结果及分析1.求最大数2.递归法与迭代法性能比较递归迭代3.改进算法1.利用公式法对第n项Fibonacci数求解时可能会得出错误结果。

主要原因是由于double类型的精度还不够,所以程序算出来的结果会有误差,要把公式展开计算。

2.由于递归调用栈是一个费时的过程,通过递归法和迭代法的比较表明,虽然递归算法的代码更精简更有可读性,但是执行速度无法满足大数问题的求解。

3.在当前计算机的空间较大的情况下,在一些速度较慢的问题中,空间换时间是一个比较周全的策略。

实验原理(算法基本思想)定义:若A=(a ij), B=(b ij)是n×n的方阵,则对i,j=1,2,…n,定义乘积C=A⋅B 中的元素c ij为:1.分块解法通常的做法是将矩阵进行分块相乘,如下图所示:二.Strassen解法分治法思想将问题实例划分为同一问题的几个较小的实例。

对这些较小实例求解,通常使用递归方法,但在问题规模足够小时,也会使用另一种算法。

如果有必要,合并这些问题的解,以得到原始问题的解。

求解矩阵相乘的DAC算法,使用了strassen算法。

DAC(A[],B[],n){If n=2 使用7次乘法的方法求得解ElseDivide(A)//把A分成4块Divide(B)//把B分成4块调用7次strassen算法求得解的4块合并这4块得到解并返回}伪代码Serial_StrassenMultiply(A, B, C) {T1 = A0 + A3;T2 = B0 + B3;StrassenMultiply(T1, T2, M1);T1 = A2 + A3;StrassenMultiply(T1, B0, M2);T1 = (B1 - B3);StrassenMultiply (A0, T1, M3);T1 = B2 - B0;StrassenMultiply(A3, T1, M4);T1 = A0 + A1;StrassenMultiply(T1, B3, M5);T1 = A2 – A0;T2 = B0 + B1;StrassenMultiply(T1, T2, M6);T1 = A1 – A3;T2 = B2 + B3;StrassenMultiply(T1, T2, M7);C0 = M1 + M4 - M5 + M7C1 = M3 + M5C2 = M2 + M4C3 = M1 - M2 + M3 + M6}实验结果及分析时间复杂度1.分块相乘总共用了8次乘法,因而需要Θ(n log28)即Θ(n3)的时间复杂度。

专业算法复习题一.docx

专业算法复习题一.docx
解:#include<stdio.h>
int main()
{
int i,aver,a[10],sum=0,n=0;
for(i=l;i<10;i++)
scanff%d”,&a[i]);
ifi[a[i]>0&&a[i]%2==0)
{
sum=sum+a[i];
n++;
}
avcr=sum/n;
printf(,'aver=%d\n",aver);
A.1个B.2个
C.4个D.8个
5.下列表达式屮运算结果为3的表达式是(B)
A.(-7)%4B.7/4+2
C.7/4*4-4D.8/3+8/3
6.设有int a=3,b=-4, c=5;表达式a4"+・c+b++的值是(C )
A.・6B.・5
C・-4D.・3
7.在printf语句屮,格式说明符u表示(C)
专业算法复习题一
—S
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的
括号内。错选.多选或未选均无分。
6•下面转义字符屮,表示字符串结束的是(C)
B.\ n
DAf
7.在VC屮,若定义unsigned int a;则变最a在内存屮分配的字节数是(C)
A」个B.2个
C.4个D.8个
9.关于switch屮的表达式,正确的说法是(D)
A.它必须是算术表达式B.它必须是关系表达式
C.它必须是逻辑表达式D.它可以是任意类型的表达式
10.对do语句while(表达式);结构的循环,下列说法正确的是(B)

中南民族大学算法复习资料(习题-中文版)

中南民族大学算法复习资料(习题-中文版)

中南民族大学算法复习资料(习题-中文版)一,选择题1,下列公式可被视为一个计算三角形面积的一面正数X,Y和Z的长度的算法?()(一)=√L(L - X)(L- Y)(L- Z),其中L =(X,Y,Z)/ 2 (二),S = 1/2 yzsinA,其中A是双方Y和Z之间的角度(三),S = 1/2 XH,其中h是高度基地x (四)以上都不可以被认为是算法2,在功能的四对,对有增长的顺序不同?()(一)(N31)5√n和√(N7 N)(二)log22n和log2n2 (三)log10n和LN?(四)5N- 1和5N13,关于渐近符号下面的描述哪些是正确的?()(一)为O(F(N))的所有功能,具有较大的增长相同的顺序为F(N)(二)Θ(F(n))的增长相同的顺序为F(N)的所有功能设置(三)Ω(F(N))是所有功能的设置相同或较小的增长为F的顺序(N)(四)以上都不是正确的 4,多少比较会受到蛮力字符串匹配算法的搜索模式=“00... ...0(M - 1个)”,在文本=“00... ...0(N个)\(一)(1纳米)米(B)1纳米(三)(NM)M(四)纳米5,关于归并排序和快速排序的以下断言哪个是假?()(一)在最好的情况下,合并排序的时间效率是Ω(nlogn)(二)快速排序在最坏情况下的时间效率是O(nlogn)(三)合并排序在最坏情况下的时间效率是Ω(nlogn)(四)在平均情况下的快速排序的时间效率是Θ(nlogn)6,下列哪项是堆?()10 7 5 8 8 8 5 5 7 5 7 4 2 1 4 6 2 1 4 2 17,以下问题不能使用广度优先搜索算法解决?()(一)找到两个给定一个图的顶点之间的数量最少的边的路径(b)检查图acyclicity(c)寻找一个无向图的关节点(d)检查图的连通8,下面的算法属于可变大小减少技术(?)(一)二进制搜索(二)插值搜索(三)顺序搜索(d)俄罗斯农民的方法followting算法计算二项式系数是最有效的呢?(9)(a)适用于动态规划算法(b)申请递归的fomulaC组(n,K)= C(N- 1,K- 1)+(N - 1,K)N> K>0 C组(n,0)= C(N,N)= 0(三)利用公式C(N,K)= N!/ K!(N- K)!(d)使用公式C(N,K)= N(N - 1)... ...(N - K +1)/ K!10,下列哪项是真的吗?()(一)如果e是一个连接加权图的最低weighe边缘,必须至少有一个最小生成树的图的树边之间。

算法_第四版_习题_答案

算法_第四版_习题_答案

算法第四版习题答案1.2/** 1.2.1 编写一个Point2D的用例,从命令行接受一个整数N。

在单位正方形内生成N个随机点,然后计算两点之间的最近距离*/public class testPoint2D {public testPoint2D() {// TODO Auto-generated constructor stub}public static void drawbox(double bw, double bh){StdDraw.setPenRadius(0.005);StdDraw.setPenColor(StdDraw.RED);Interval1D xinterval = new Interval1D(0, bw);Interval1D yinterval = new Interval1D(0, bh);Interval2D box = new Interval2D(xinterval, yinterval);box.draw();}public static Point2D[] drawpoint(int N){Point2D[] p=new Point2D[N];for(int i=0;i<N;i++){double x=Math.random();double y=Math.random();p[i]=new Point2D(x, y) ;p[i].draw();}return p;}public static double findmindist(Point2D[] p){Point2D p1=p[0];Point2D p2=p[1];double mindist =p[0].distanceTo(p[1]);StdDraw.setPenRadius(0.002);StdDraw.setPenColor(StdDraw.RED);int n=p.length ;for(int i=1;i<n-1;i++)for(int j=i+1;j<n;j++){double temp=p[i].distanceTo(p[j]);if(temp<mindist){ mindist=temp;p1=p[i];p2=p[j];}}p1.drawTo(p2);StdOut.print("min dist="+mindist +p1.toString()+p2.toString());return mindist;}public static void main(String[] args) {int N=StdIn.readInt();//读取画点的数量//StdDraw.setXscale(0,1 );//StdDraw.setYscale(0,1);drawbox(1,1);//画出一个单位大小的正方形StdDraw.setPenRadius(0.01);StdDraw.setPenColor(StdDraw.BLACK);//drawpoint(N);//画出N个点double min=findmindist(drawpoint(N));}}/** 编写一个Interval1D的用例,从命令行接受一个整数N。

中南民族大学-软件工程复习题

中南民族大学-软件工程复习题

软工复习题1.软件是一种(B)实体,具有抽象性。

A.有形B.逻辑C.物理D.消耗2.就内容来看,软件工程应包括三个要素,它们是(C)(1)方法。

(2)工具。

(3)产品。

(4)过程A.(1)(2)(3) B. (2)(3)(4) C. (1)(2)(4) D. (1)(3)(4)3.软件工程模型有多种,下列选项中,(C)不是软件工程模型。

A.螺旋模型 B. 增量模型 C. 功能模型 D. 破布模型4.软件生存周期包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、(B)、维护等活动。

A.应用 B. 测试 C. 检测 D. 以上答案都不正确5.实体模型的三个基本组成成为是实体、联系和(B)A.模型B.属性C.特征D.事务6.数据流图中的基本符号有(D)A.变换、加工、数据流和存储。

B.输入、输出、外部实体和加工。

C.变换、数据存储、加工和数据流。

D.数据的源点或终点、数据流、数据存储和加工。

7.在数据流图中,有名字及方向的成分是(C)A.控制流 B. 信息流 C. 数据流 D. 信号流8.需求分析阶段研究的对象是软件项目的(A)A.用户要求 B. 合理要求 C. 模糊要求 D. 技术人员要求9.软件需求规格说明书的内容不应该包括对(B)的描述A.主要功能 B. 算法的详细过程 C. 用户的界面及运行环境 D. 软件的性能10.状态迁移图是一种描述系统状态随(A)进行迁移的有效的图形手段。

A.外部信号或事件 B. 数据 C. 时间 D. 信息11.(C)是数据流图中数据结构的操作。

A.数据流 B. 数据流量 C. 数据文件 D. 数据项12.软件设计阶段一般又可分为(B)A.逻辑设计与功能设计 B.概要设计与详细设计C.概念设计与物理设计 D. 模型设计与程序设计13.研究开发所需要的成本与资源是属于可行性研究中的(B)研究的一方面A.技术可行性 B. 经济可行性 C. 社会可行性 D. 法律可行性14.瀑布模型本质上是一种(A)A.线性顺序模型 B. 顺序迭代模型 C. 线性迭代模型 D. 及早见产品模型15.好的软件结构应该是(B)A.高耦合,高内聚 B. 低耦合,高内聚 C. 高耦合,低内聚 D. 低耦合,低内聚16.划分模块时,一个模块的(A)A.作用域应该处于其控制范围之内B.控制域应该处于其作用域之内C.作用域与控制域互不包含D.作用域与控制域不受任何限制17.(C)用于说明软件中各个模块的功能、性能及接口。

3.2.1《算法》-课后作业 粤教版(2019)-信息技术-数据与计算必修1

3.2.1《算法》-课后作业 粤教版(2019)-信息技术-数据与计算必修1

《算法》作业一、选择题1. 在算法分析中,时间复杂度是指:A. 算法所需的最大存储空间B. 算法执行所需的时间与输入规模的关系C. 算法的可读性D. 算法的正确性答案:B解析:时间复杂度是衡量算法运行时间随输入规模增长而变化的趋势,通常使用大O符号表示。

2. 以下哪种排序算法的平均时间复杂度为O(n log n)?A. 冒泡排序B. 插入排序C. 快速排序D. 选择排序答案:C解析:快速排序在平均情况下的时间复杂度为O(n log n),是高效的排序算法之一。

3. 在图论中,最短路径问题可以通过以下哪种算法求解?A. 深度优先搜索(DFS)B. 广度优先搜索(BFS)C. Dijkstra算法D. A算法答案:C解析:Dijkstra算法是解决单源最短路径问题的经典算法,适用于带权有向图和无向图。

4. 在动态规划中,状态转移方程用于描述:A. 问题的初始状态B. 问题的边界条件C. 子问题之间的递推关系D. 问题的最优解答案:C解析:状态转移方程是动态规划的核心,它描述了如何从当前状态推导出下一个状态,即子问题之间的递推关系。

5. 在贪心算法中,每一步选择都是基于:A. 全局最优解B. 局部最优解C. 随机选择D. 固定策略答案:B解析:贪心算法在每一步都做出当前看起来最优的选择,即局部最优解,希望这样能导致全局最优解。

6. 在回溯算法中,剪枝操作的目的是:A. 减少递归深度B. 提高算法效率C. 避免重复计算D. 以上所有答案:D解析:剪枝操作在回溯算法中用于跳过不可能产生可行解或更优解的分支,从而减少不必要的计算,提高算法效率。

二、填空题7. 在算法设计中,_______是评价算法性能的重要指标之一,它反映了算法执行速度随输入规模增长的变化趋势。

答案:时间复杂度解析:时间复杂度是衡量算法执行速度的重要指标,它随着输入规模的增加而变化。

8. 冒泡排序是一种简单的排序算法,它通过重复交换相邻的_______来对一列数字进行排序。

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

一,选择题
1,下列公式可被视为一个计算三角形面积的一面正数X ,Y 和Z 的长度的算法?()
(一)=√L (L - X )(L- Y )(L- Z ),其中L =(X ,Y ,Z )/ 2
(二),S = 1/2 yzsinA ,其中A 是双方Y 和Z 之间的角度
(三),S = 1/2 XH ,其中h 是高度基地x
(四)以上都不可以被认为是算法
2,在功能的四对,对有增长的顺序不同?()
(一)(N31)5√n 和√(N7 N )(二)log22n 和log2n2
(三)log10n 和LNñ(四)5N- 1和5N1
3,关于渐近符号下面的描述哪些是正确的?()
(一)为O (F (N ))的所有功能,具有较大的增长相同的顺序为F (N )
(二)Θ(F (n ))的增长相同的顺序为F (N )的所有功能设置
(三)Ω(F (N ))是所有功能的设置相同或较小的增长为F 的顺序(N )
(四)以上都不是正确的
4,多少比较会受到蛮力字符串匹配算法的搜索模式=“00... ...0(M - 1个)”,在文本=“00... 0
(N 个)"?()
(一)(1纳米)米(B )1纳米(三)(NM )M (四)纳米
5,关于归并排序和快速排序的以下断言哪个是假?()
(一)在最好的情况下,合并排序的时间效率是Ω(nlogn )
(二)快速排序在最坏情况下的时间效率是O (nlogn )
(三)合并排序在最坏情况下的时间效率是Ω(nlogn )
(四)在平均情况下的快速排序的时间效率是Θ(nlogn )
6,下列哪项是堆?()
7,以下问题不能使用广度优先搜索算法解决?()
(一)找到两个给定一个图的顶点之间的数量最少的边的路径
(b )检查图acyclicity
(c )寻找一个无向图的关节点
(d )检查图的连通
8,下面的算法属于可变大小减少技术(?)
(一)二进制搜索(二)插值搜索
(三)顺序搜索(d)俄罗斯农民的方法
followting算法计算二项式系数是最有效的呢?(9)
(a)适用于动态规划算法
(b)申请递归的fomula
C组(n,K)= C(N- 1,K- 1)+(N - 1,K)N> K>0
C组(n,0)= C(N,N)= 0
(三)利用公式C(N,K)= N!/ K!(N- K)!
(d)使用公式C(N,K)= N(N - 1)... ...(N - K +1)/ K!
10,下列哪项是真的吗?()
(一)如果e是一个连接加权图的最低weighe边缘,必须至少有一个最小生成树的图的树边之间。

(二)如果连接的加权图的边权重是不是所有不同,图中必须有一个以上的最小生成树。

(C)如果e是一个连接加权图的最低weighe边缘,它必须成为每个树图的最小生成树的边缘。

(四)以上都不是正确的。

二,填空题
(1)给定一个recourrence T(N)+ N ^ 2=9T(n / 3的),T(1)= 3,增长recourrence is_______的解决方案roder。

(使用的渐近符号⊙)
(2)一个djacency基质and__________are两个数据结构来存储或代表图。

(3)大街的矩阵乘法算法is__________乘法。

(4)有三个减少和征服技术的变化;减少一个常数,_____
可变大小的减少。

(5)以下的有向图is___________ lopological秩序。

(6)N =47的约瑟夫问题的解决方案是J(N)=____________.
(7)有三种不同类型的变换而治之的技术:___________, Represention变化和减少问题。

(8)申请荷马的规则来评价多项式P(X)=3X^4- X^ 32X^ 2 x在一个特定的X5的乘法总数is____________。

0 0 1 0
0 0 0 1
(9)鉴于以下的邻接矩阵定义有向图0 1 0 0
0 0 0 0
它的传递闭包是___________。

(10)贪婪的做法表明,贪婪选择的每一步,构建一个解决方案通过一个步骤的顺序,必须作出的选择feasiable,局部最优和__________。

3。

对于下列每个问题,给出一个简短和准确的答案,在答题簿上。

(1)确定以下排序算法是稳定的算法,哪些不是稳定的算法:选择排序,合并排序,冒泡排序,插入排序和快速排序,并解释为什么。

(2)总体规划确定的非递归算法的效率分析。

(3)四种类型描述分类DFS(深度优先搜索)算法的有向图,如何检查的有向图的acyclicity 的边缘。

4.For每个下面的问题,回答一个合适的答案的答题簿上。

(1)假设x是一个正整数,n是2的乘方,使用蛮力方法,divede和征服,技术,减少由一个技术,并减少一半技术,分别计算X^ N确定每种技术和指出该技术是最有效的乘法。

(2)动态规划方法解决0-1 knaspsack问题。

背包问题的实例如下表。

你需要:(1)推导的递推公式V [I,J];(2)填写的V[,],并计算出最佳的解决方案项目设置表(假设的V[I,J]。

最佳的解决方案,以一个0-1背包问题,即适合capactity J.背包的第i个项目的最有价值的一个子集的值的实例的值)
Itme weight value
1 2 $24
2 1 $20
3 3 $50 容量W=5
4 2 $30
(3)解决高斯消元以下的系统。

X1+2 X23 X3=9
2X1+ X2 + X3= 4
X1 - X2-3 × 3=6
(4)申请Dijkstn的算法来计算一个给定的源顶点α的单源最短路径,并找到下面的图的所有其他顶点的最短路径
(5)给定一个数组T[0,N - 1]已按升序排序的有n个不同的整数,如果存在一个索引我我(0≤≤N - 1),这样,T [我] =我,请设计一个高效的算法找到索引和分析你的算法的时间效率。

相关文档
最新文档