中科大软件学院算法复习概念综合题
软件设计师-算法设计和分析(一)_真题-无答案
软件设计师-算法设计和分析(一)
(总分76,考试时间90分钟)
一、综合知识试题
1. 归并排序采用的算法设计方法属于______。
A. 归纳法
B. 分治法
C. 贪心法
D. 回溯方法
2. 以下的算法设计方法中,______以获取问题最优解为目标。
A. 回溯方法
B. 分治法
C. 动态规划
D. 递推
3. 设某算法的计算时间表示为递推关系式T(n)=T(n-1)+n(n>0)及T(0)=1,则该算法的时间复杂度为______。
A. O(lgn)
B. O(nlgn)
C. O(n))
D. O(n2)
4. 若某算法在问题规模为n时,其基本操作的重复次数可由下式表示,则该算法的时间复杂度为______。
A. O(n)
B. O(n2)
C. O(log2n)
D. O(nlog2n)
5. 用动态规划策略求解矩阵连乘问题M1*M2*M3*M4,其中M1(20*5)、M2(5*35)、M3(35*4)和M4(4*25),则最优的计算次序为______。
A. ((M1*M2)*M3)*M4
B. (M1*M2)*(M3*M4)
C. (M1*(M2*M3))*M4
D. M1*(M2*(M3*M4)
6. 若总是以待排序列的第一个元素作为基准元素进行快速排序,那么最好情况下的时间复杂度为______。
A. O(log2n)
B. O(n)
C. O(nlog2n)
D. O(n2)
7. 下面C程序段中count++语句执行的次数为______。
for (int i=1; i<=11; i*=2)
for(int j=1;j<=i;j++)
大学计算机软件技术基础考试技术复习题
线性表采用链式存储时,结点的存储地址()A.必须是不连续的
B.连续与否均可
C.必须是连续的
D.和头结点的存储地址相连续
由两个栈共享一个向量空间的好处是:()
A.减少存取时间,降低下溢发生的机率
B.节省存储空间,降低上溢发生的机率
C.减少存取时间,降低上溢发生的机率
D.节省存储空间,降低下溢发生的机率
假设以带行表的三元组表表示稀疏矩阵,则和下列行表
对应的稀疏矩阵是()
A.
0806
7000
0000
5040
0000
-
-
⎡
⎣
⎢
⎢
⎢
⎢
⎢
⎢
⎤
⎦
⎥
⎥
⎥
⎥
⎥
⎥
B.
0806
7000
5040
0000
0300
-
-
⎡
⎣
⎢
⎢
⎢
⎢
⎢
⎢
⎤
⎦
⎥
⎥
⎥
⎥
⎥
⎥
C.
0806
0000
0200
5040
0000
-
-
⎡
⎣
⎢
⎢
⎢
⎢
⎢
⎢
⎤
⎦
⎥
⎥
⎥
⎥
⎥
⎥
D.
0806
0000
7000
5040
0300
-
-
⎡
⎣
⎢
⎢
⎢
⎢
⎢
⎢
⎤
⎦
⎥
⎥
⎥
⎥
⎥
⎥
在一棵度为3的树中,度为3的结点个数为2,度为2 的结点个数为1,则度为0的结点个数为( )
A.4 B.5 C.6 D.7
一棵含18个结点的二叉树的高度至少为( C )
A.3
B.4
C.5
D.6
已知二叉树的先序序列为ABDECF,中序序列为DBEAFC,则后序序列为( D ) A.DEBAFC B.DEFBCA C.DEBCFA D.DEBFCA
无向图中一个顶点的度是指图中( B )
A.通过该顶点的简单路径数
B.与该顶点相邻接的顶点数
C.通过该顶点的回路数
D.与该顶点连通的顶点数
设顺序存储的线性表共有123个元素,按分块查找的要求等分成3块。若对索引表采用顺序查找来确定块,并在确定的块中进行顺序查找,则在查找概率相等的情况下,分块查找成功时的平均查找长度为( B )
【最新】【复试】计算机复试试题解析之中国科学技术大学
【复试】计算机复试试题解析之中国科学技术大学
本文主要针对中国科学技术大学软件工程专业的历年复试进行解析,以供大家作为参考。软件工程专业在软件学院进行招生,以往的复试形式为:面试+上机。具体复试内容如下:
1、专业基础测评(上机50分):专业基础测评主要
考察考生有关C++和数据结构的基础知识及基本运用能力。
2、英语综合面试(满分25分):重点考核考生的英
语听说能力。
3、专业综合面试(满分100分):主要考察考生对
本学科(专业)理论知识和应用技能的掌握程度,包括考生对本专业基础知识的掌握和理解程度,综合应用所学知识解决实际问题的能力;考察考生在本专业以外的学习、科研、社会实践或实际工作等方面的经历等。
下面我们分三方面分别就中国科学技术大学软件工程的复试进行分析。
一、上机
机试分为C语言测试、逻辑测试和心理测试。
1、C语言测试类似计算机二级的考查形式,一些社群里会有人分享练习题,还有训练网站,多做做可以应对,C语言题目相对不是很难。
2、心理测试可能前后有类似的题目,做到前后答案一致,实事求是,一般人都是没问题的。
3、逻辑题有时候可能难点,有时间准备的同学可以刷刷公务员考试的逻辑推理题。
二、专业面试
因为是非笔试形式,所以没有固定的范围。大多数人的专业课面试都是问的初试考查的科目,不过范围肯定比初试广很多,所以建议大家如果确信自己可以进入复试的,把408四门课用上课教材看一遍。一些老师会针对你做过的项目问一些相关知识,所以自己参加过的比赛、做过的项目/实验所涉及的相关知识也要复习一下。
下面是一些可能被问到或者已经问到的题目,大家复习的时候按照这个逻辑进行复习,一般考查的偏概念和理论。
算法与程序部分复习试题
VB题复习题
1.下列各组控件都具有Caption属性的是C
A.窗体、文本框
B.标签、定时器
C.窗体、标签
D.文本框、定时器
2. 下面关于算法的错误说法是B
A)算法必须有输出B)算法必须在计算机上用某种语言实现
C)算法不一定有输入D)算法必须在有限步执行后能结束
3.下列每个控件都具有的属性是A
B.Caption
C.Font
D.Interval
4.下列运算结果中,值最大的是D
A.3\4
B.3/4
C.4 mod 3
D.3 mod 4 〖/表示除,\表示整除,mod表示求余数〗
5.以下哪个是合法的变量名D
A.Len B.Test@qw C.6cost_1 D.count2s
6.在Visual Basic代码中,将多个语句合并在一行上的并行符是B
A. 撇号(')
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 a
F. a=a*b+c
G.ads=309
8.下列控件中可设置滚动条的是C (即具有ScrollBars属性的对象)
A.计时器B.标签C.文本框D.按钮
9.下面程序执行的结果是C
Private Sub Form_Click()
A = "123":
B = "456"
C = Val(A) + Val(B) 〖val是把字符转化为数值的函数〗
msgbox (C \ 100)
中科大计算机考研真题
中科大计算机考研真题
中科大计算机考研是众多计算机科学与技术专业学生追求的目标之一。在这道真题中,我们将回顾一些历年的考题,并提供一些解析和思路,以帮助考生更好地准备考试。本文共分为三个主题部分:操作系统、数据库和算法与数据结构。
一、操作系统
1. 多道批处理系统是怎样实现作业调度的?请简要描述操作系统的作业调度过程。
解析:多道批处理系统是指一台计算机同时处理多个作业,而不需要人工干预。作业调度是指操作系统根据一定的算法,决定当前执行哪个作业。作业调度过程一般包括以下几个步骤:
首先,操作系统根据作业的优先级和提交时间等信息,为每个作业分配一个初始的调度优先级。
其次,对于多个处于就绪状态的作业,操作系统根据调度算法,选择一个作业进行执行。常见的调度算法有先来先服务(FCFS)、短作业优先(SJF)、最高响应比优先(HRRN)等。
最后,当一个作业执行完成或者处于阻塞状态时,操作系统会根据调度算法重新选择一个作业进行执行,直到所有作业完成。
2. 请解释死锁的概念,并说明死锁的产生条件和解决方法。
解析:死锁是指多个进程在竞争有限资源时,由于彼此之间的互斥
和请求资源的非预期顺序等原因,导致都在等待对方释放资源,从而
导致系统无法继续执行。
死锁的产生条件主要包括:
互斥条件:进程对所请求的资源进行排他性控制,即一次只能有一
个进程使用该资源。
持有和等待条件:进程已经持有了一个资源,但又请求额外的资源,而这些资源又被其他进程所占有。
不剥夺条件:其他进程不能强行剥夺一个进程已经持有的资源,只
能由进程自己释放。
中科大软件学院算法复习概念综合题
一、概念题:
(1)排序算法时间复杂度:
排序算法最好最坏平均
插入O(n)O(n2)O(n2)
归并O(nlogn)O(nlogn)O(nlogn)
快排O(nlogn)O(n2)O(nlogn)排序算法空间复杂度:
1、所有简单排序和堆排序都是0(1)
2、快速排序为0(logn),要为递归程序执行过程栈所需的辅助空间
3、归并排序和基数排序所需辅助空间最多,为O(n)
(2)渐近记号
1、渐近确界:Θ(g(n))={f(n):存在正常数c1和c2和n0,使对所有的n>= n0,都有0<=c1g(n)<=f(n)<=c2g(n)}。大Θ记号给出函数的渐进确界。
2、渐近下界:Ω(g(n))={f(n):存在正常数c和n0,使对所有的n>=n0,都有0<=cg(n)<=f(n)}。大Ω记号给出函数的渐进下界。
3、渐近上界:O(g(n))={f(n):存在正常数c和n0,使对所有的n>=n0,都有0<=f(n)<=cg(n)}。大O记号给出函数的渐进上界。
(3)二叉查找树:
执行基本操作的时间与树的高度成正比。搜索、插入、删除的复杂度等于树高,期望O(lgn),最坏O(n)(数列有序,树退化成线性表)
(4)红黑树:
1、时间复杂度:
基本动态集合操作:O(log n),n是树中元素的数目。
2、性质:
1)节点是红色或黑色。
2)根节点是黑色。
3)每个叶节点(NIL节点)是黑色的。
4)如果一个结点是红的,则它的两个儿子都是黑的(不能有两个连续
红结点)
5)从任一节点到其子孙结点的所有路径都包含相同数目的黑色节点。
软件工程复习题及参考答案
软件⼯程复习题及参考答案
软件⼯程复习题及参考
答案
⽂稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-《软件⼯程》课程复习资料
⼀、单项选择题:
1.下⾯哪些UML图描述系统⾏为?
[ ]
A.⽤例图
B.类图
C.对象图
2.属于概要设计活动的是
[ ]
A.软件结构设计
B.数据结构设计
C.算法设计
3.属⾏为型设计模式的是
[ ]
A.组合模式
B.⼯⼚⽅法模式
C.观察者模式
4.下列说法正确的是
[ ]
A.UML 是软件开发⽅法
B.UML是系统描述语⾔
C.UML是软件开发过程
5.根据程序流程图划分的模块通常是
[ ]
A.信息内聚的模块
B.过程内聚的模块
C.逻辑内聚的模块
6.如果某程序中的⽐较个数是m,则其 McCabe环形复杂度为
[ ]
C.m+1
7.按ISO9000-3的说明,下列属软件配置项的是
[ ]
A.软件开发⽅法
B.软件开发组织管理制度
C.软件开发合同
8.软件测试的⽬的是
[ ]
A.证明软件⽆错
B.发现软件中的所有错误
C.尽可能发现软件系统中的错误
9.软件重构关注的是
[ ]
A.软件体系结构
B.模块细节
C.软件性能
10.软件项⽬开发计划的内容有
[ ]
A.数据分析
B.风险分析
C.功能分析
11.在UML的类图中,描述整体与部分关系的是
[ ]
A.泛化关系
B.聚合关系
C.依赖关系
12.软件过程能⼒成熟度模型CMM⽤以评价
[ ]
A.软件过程能⼒
B.组织能⼒
C.学习能⼒
13.因计算机硬件和软件环境的变化⽽作出的修改软件的过程称为[ ]
C.适应性维护
14.对项⽬软件⽽⾔,软件功能需求信息主要由谁提供[ ]
中科大软件学院历年面试真题
School of Software Engineering University of Science and Technology of China
2012年参加中国科大软件学院复试前,收集了一些前几届的面试题目。
和大家分享一下,希望对大家有所帮助。
独上高楼,望尽天涯路。
衣带渐宽终不悔,为伊消的人憔悴。
众里寻她千百度,蓦然回首,伊人却在灯火阑珊处。
turinglife
2013-03-09
1.好多人会问到时间复杂度 (5)
2.各种排序的时间复杂度和性能比较 (5)
3.什么叫堆排序?与快速排序有神马不同? (9)
4.循环队列的顺序表示中,为什么要空一个位置。。。 (9)
5.什么是二叉查找树,原理 (10)
6.排序算法最优的时间复杂度 (10)
7.哈夫曼树 (10)
8.什么是哈希冲突,及如何解决 (10)
9.深度、广度搜索的过程 (11)
10.迪杰斯克拉算法的过程 (12)
11.链表查询某个元素,平均时间复杂度是多少? (12)
12.图的存储方式 (12)
13.图的深度遍历是否唯一 (12)
14.图相关概念 (13)
15.连通图的概念 (13)
16.解释下最小生成树 (13)
17.n个节点的图的最小生成树有几个节点,几条边 (14)
18.平衡二叉树 (14)
19.二叉树怎么存储 (14)
20.单链表就地逆置 (14)
21.各种查找总结 (15)
22.m阶的B-树和m阶的B+树主要区别 (18)
23.折半查找,适用范围和时间复杂度 (18)
24.计算机和计算器的区别 (18)
25.线程/进程空间是什么 (19)
中国科学院软件研究所1999年研究生入学考试数据结构与C语言试题
中国科学院软件研究所1999年研究生入学考试数据结构与C语言试题
1 (5分)
判断正误:
① 中序遍历一棵二叉排序树的节点就可得到排好序的节点序列。
② 顺序存储方式只能用于存储线性结构。
③ 负载因子(装填因子)是散列表的一个重要参数,它反映散列表的装满程度。
④ 顺序查找法适用于存储结构为顺序或链接存储的线性表。
⑤ 栈和队列都是限制存取点的线性结构。
2 (5分)
选择填空:
① 图1中给出由7个顶点组成的无向图。从顶点1出发,对它进行深度优先遍历得到的顶点序列是(1);而进行广度优先遍历得到的顶点序列是(2)。
(1) A 1354267 (2) A 1534267
B 1347625 B 1726453
C 1534276 C 1354276
D 1247653 D 1247653
E 以上答案均不正确 E 以上答案均不正确
图1 题2.1图
② 从临接矩阵A=可以看出,改图共有(1)个顶点。如果是有向图,该图共有(2)条弧;如果是无向图,则共有(3)条边。
(1) A 9 B 3 C 6 D 1 E 以上答案均不正确
(2) A 5 B 4 C 3 D 2 E 以上答案均不正确
(3) A 5 B 4 C 3 D 2 E 以上答案均不正确
3 (15分)
算法设计(建议用类PASCAL语言写出算法)
① 二叉排序树采用二叉链表存储。些一个算法,删除节点值是X的节点。要求删除改节点后,此树仍然是一棵二叉排序树,并且高度没有增长。(注:可不考虑被删除的节点是根的情况)。
②已知关键字序列(K1,K2,K3,…,K n-1)是大根堆。
2020年408算法题
2020年408算法题
408考试是中国计算机等级考试中的一项重要考试,主要测试考生在计算机基础知识和应用能力方面的水平。其中,算法题是考察考生编写程序解决实际问题的能力。这些题目通常要求考生使用合适的数据结构和算法来实现特定的功能或解决特定的问题。
在408考试的算法题中,可能会涉及到以下一些常见的算法和数据结构:
1. 排序算法,如冒泡排序、快速排序、归并排序等。
2. 查找算法,如二分查找、哈希查找等。
3. 图算法,如最短路径算法(Dijkstra算法、Floyd算法)、最小生成树算法(Prim算法、Kruskal算法)等。
4. 动态规划,用于解决具有重叠子问题性质的问题,如背包问题、最长公共子序列问题等。
5. 贪心算法,通过每一步的局部最优选择来达到全局最优解,
如霍夫曼编码、最小生成树等。
对于408算法题,解题的关键在于理解题目要求和限制条件,
分析问题的特点,选择合适的算法和数据结构,并实现相应的代码。在解题过程中,需要注意算法的时间复杂度和空间复杂度,以及边
界情况的处理。
总之,408考试的算法题目要求考生具备扎实的编程基础和灵
活运用算法的能力。通过理解题目、分析问题、选择合适的算法和
数据结构,并进行代码实现,考生可以有效地解答408算法题。希
望这些信息能对你有所帮助。
【免费下载】算法与程序设计综合评价练习题
算法与程序设计综合评价练习题
一、利用计算机解决问题的基本过程
判断题:
1、一个算法有一个或多个输出,但可以没有输入。()参考答案:正确。
2、我们常说的程序设计语言就是程序设计。()参考答案:错误。
3、一个算法可以用多种程序设计语言来实现。()参考答案:正确。
4、用计算机解决问题要经过分析问题——设计算法——编写程序——调试程序等基本过程。()参考答案:正确。
单选题:
5、在日常生活中,我们常常会碰到许多需要解决的问题,以下描述中最适合用计算机编
程来处理的是()。
A、确定放学回家的路线
B、计算某个同学期中考试各科成绩总分
C、计算10000以内的奇数的平方和
D、在因特网上查找自己喜欢的歌曲参考答案:C
6、以下不属于算法基本特征的是()。
A、可执行性
B、确定性
C、有穷性
D、无限性参考答案:D
7、生活中有许多工作可以通过编程来解决,但以下描述中,不宜使用编程来处理的是()。
A、编辑调查报告
B、机器人灭火比赛
C、导弹自动防御系统设置
D、山西省高中生学籍管理系统参考答案:A
8、一位爱好程序设计的同学,想通过程序设计解决“韩信点兵”的问题,他制定的如下
工作过程中,最恰当的是()。
A、设计算法,编写程序,提出问题,运行程序,得到答案
B、分析问题,编写程序,设计算法,运行程序,得到答案
C、分析问题,设计算法,编写程序,运行程序,得到答案
D、设计算法,提出问题,编写程序,运行程序,得到答案参考答案:C
9、以下说法正确的是()。
A、算法+ 数据结构= 程序设计
B、算法就是程序
C、数据结构就是程序
D、算法包括数据结构
软件学院数据结构与算法复习提纲
软件学院数据结构与算法复习提纲
软件学院数据结构与算法复习提纲
(2013 年秋季学期)
1、Data structures and algorithms
概念:type, simple type, composite type, aggregate type, data type, ADT, data structure, problems,
function, algorithms, programs
类型(type):是一组值的集合。
简单类型:值不含子结构;
复杂类型(或组合类型):含有子结构(或由子结构组合而成)。
数据类型:指一种类型和定义在该类型上的一组操作。
ADT抽象数据类型:指数据结构作为一个软件组件的实现。一个数学模型及定义在这个模型上的一组操作(或运算)的总称.
数据结构:ADT的实现。
问题:一个函数,或者是输入到输出的一种映射。
函数:输入和输出之间的一种映射关系。
算法:一种能够解决问题的、有具体步骤的方法。
程序:算法在计算机程序设计语言中的实现。
2、Mathematical preliminaries
概念:set, recursion
集合set:由互不相同的成员或者元素构成的一个整体。
递归:如果一种算法调用自己来完成它的部分工作,就称这种算法师递归的。3、Algorithm Analysis
概念:asymptotic algorithm analysis, growth rate, best/worst/average case, upper/lower bound,
space/time tradeoff, big-Oh/big-Omega/Theta notation
软件工程导论复习题及答案
③ 接受消息的对象必须给消息发送者以回答
④ 对象在计算中可向其他对象发送消息
⑤ 对象的内部状态只根据外部送来的消息才操作
E:① C++
②
③
④
3.OMT 是一种对象建模技术,它定义了三种模型,它们分别是 A 模型, B 模型,和 C 模型。其中, A
模型描述了系统中对象的静态结构,以及对象之间的联系; B 模型描述系统中与时间和操作顺序有关的系统
三种可能的模块耦合是:
1). B :例如,一个模块直接引用另一模块中的数据。
2). C :例如,一个模块把开关量作为参数传送给另一模块。
3). D :例如,一个模块把一个数值量作为参数传送给另一模块。
其中, E5 的耦合性最强。
A:① 强
② 适中
③弱
④ 不考虑
B~E:
① 公共耦合
② 数据耦合
③ 逻辑耦合
回答下列各个阶段的结束标准:
编码与单元测试阶段的结束标准是 A 、 B ;
综合测试阶段的结束标准是: C 、 D ;
维护阶段的结束标准是: E 。
A:① 源程序清单
② 维护记录
③ 用户手册
④ IPO 图
B:① 综合测试结果
② IPO 图
③ 单元测试方案与结果 ④ 数据字典
C:① 综合测试方案与结果 ② 数据流图
中科大软件学院C考试试卷
学号___________________ 姓名________________
成绩_______________
《面向对象编程技术》试卷
注:1)请将答案写在答题纸上,写在试卷上不算分。答题纸在试卷的最后页。
2)交卷时,试卷和答题纸一起交。
一、单选题(每小题1.5分,共30分)
1. C++中,以下有关构造函数的叙述不正确的是 ______ 。
A. 构造函数名必须和类名一致
B. 构造函数在定义对象时自动执行
C. 构造函数无任何函数类型
D. 在一个类中构造函数有且仅有一个
2.以下叙述不正确的是 ______ 。
A. 在类的定义中,通常是成员变量描述对象的属性;用成员函数描述对象的行为
B. 类的一个成员只能具有一种访问控制属性
C. 构造函数和析构函数是特殊的成员函数,因此不允许重载
D. 通过对象只能访问类的公有成员
3. 以下关于虚函数的叙述不正确的是 ______ 。
A. 虚函数属于成员函数
B. 虚函数不允许说明成静态的
C. 凡是虚函数必须用virtual说明
D. 虚函数可以被继承
4.cout是I0流库预定义的______ 。
A.类
B.对象
C. 包含文件
D. 常量
5.面向对象程序设计中的数据隐藏指的是______ 。
A.输入数据必须输入保密口令
B.数据经过加密处理
C. 对象内部数据结构上建有防火墙
D.对象内部数据结构的不可访问性
6.拷贝(复制)构造函数的作用是______ 。
A.进行数据类型的转换
B.用对象调用成员函数
C.用对象初始化对象
D.用一般类型的数据初始化对象
7. 下列不是描述类的成员函数的是______ 。
中科大软件工程考试大纲
中国科学技术大学
2017年硕士研究生入学考试复习大纲
科目名称 软件工程基础 编号 834
一、考试范围及要点
(一)程序设计基础
考试范围为指定参考书所涵盖内容。要求考生系统地理解数据结构的基本概念和理论,熟悉各种数据结构,着重强调考生应具有综合运用所学知识分析问题和解决问题的能力。
考试中所有的算法,要求用C语言描述。考生应能:
1.掌握C语言的数据类型,语句语法并熟练使用。
2.建立有关数据结构的基本概念,包括数据的逻辑结构、存储结构和算法,算法分
析的基本概念与基本方法。
3.掌握线性表的基本概念、存储结构;掌握在顺序和链式存储结构下对线性表进行
的各种操作。
4.掌握堆栈和队列的基本概念、特征及存储结构;掌握在顺序和链式存储结构下对
栈和队列的基本操作,以及利用栈与队列解决实际问题的基本方法。
5.掌握串的基本概念、存储结构和相关的操作算法。
6.掌握数组、广义表和稀疏矩阵的基本概念,存储结构和基本操作。
7.理解树的概念和基本术语;掌握二叉树的概念、存储结构和遍历;掌握利用二叉
树的遍历操作解决实际问题的方法,了解森林的概念与遍历,掌握哈夫曼树的概
念和应用。
8.掌握图的概念、常用的存储方法,掌握图的遍历、连通性、最小生成树(Prim算法
和Kruskal算法)、拓扑排序、关键路径的具体求解过程和算法。
9.掌握数据表的静态查找方法(顺序、二分、索引)和动态查找方法(二叉排序树
和平衡二叉树),理解几种方法的特点;掌握哈希表的概念和应用方法。
10.掌握内部排序(插入、快速、选择、归并、基数)的几种方法,以及不同方法的
软件工程复习题46831.doc
1.“软件工程的概念是为解决软件危机而提出的”这句话的意思是
(为提出软件工程结论)
2.瀑布模型的存在问题是(缺乏灵活性)
3.软件生命周期中所花费用最多的阶段是(维护阶段)
4.需求分析屮开发人员要从用户那里了解(系统要做什么/用户需求/系统功能)
5.可行性分析是在系统开发的早期所做的一项重要的论证工作,它是决定该系统是否开
发的决策依据,因必须给出(项目性还是不行)的回答。
6.需求分析阶段的任务是确定(目标系统必须具备哪些功能)
7』求规格说明书的作用不包括()
作用::软件验收依据、用户与开发人员的共同理解、软件设计依据
8.软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫(面向对象分析)
9.原型化方法是用户和设计者之间执行的一种交互构成,适川于(需求不明确)系统。
10.结构化设计方法采用变换分析和事务分析技术实现
(从数据流图导岀模块的初始模块结构图)。
11.-•般來说,在管理软件中,软件牛存周期各个阶段的工作量以(维护阶段30%-40% )所占的比例最大。
12.开发软件需鬲成本和产品的低质量Z间有着尖锐的矛盾,这种现彖称作(软件危机)o
13.软件工程学是应川科学理论和工程上的技术指导软件开发的学科,具口的是
(用较少的投入获得高质量的软件)。
14.划分软件生存周期的阶段时所应遵循的基本原则是(各个阶段的任务相对独立)。
15.—个软件项目是否进行开发的结论是在(可行性报告)文档中作出的。
17.画某系统的数据流图时,顶层图有(一个)
18.数据流图(DFD )是(结构化分析)方法屮用于表示系统的逻辑模型的一种图形工具。19•数据字典是用來定义(数据流图)屮的各个成份的具体含义的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、概念题:
(1)排序算法时间复杂度:
排序算法最好最坏平均
插入O(n)O(n2)O(n2)
归并O(nlogn)O(nlogn)O(nlogn)
快排O(nlogn)O(n2)O(nlogn)排序算法空间复杂度:
1、所有简单排序和堆排序都是0(1)
2、快速排序为0(logn),要为递归程序执行过程栈所需的辅助空间
3、归并排序和基数排序所需辅助空间最多,为O(n)
(2)渐近记号
1、渐近确界:Θ(g(n))={f(n):存在正常数c1和c2和n0,使对所有的n>= n0,都有0<=c1g(n)<=f(n)<=c2g(n)}。大Θ记号给出函数的渐进确界。
2、渐近下界:Ω(g(n))={f(n):存在正常数c和n0,使对所有的n>=n0,都有0<=cg(n)<=f(n)}。大Ω记号给出函数的渐进下界。
3、渐近上界:O(g(n))={f(n):存在正常数c和n0,使对所有的n>=n0,都有0<=f(n)<=cg(n)}。大O记号给出函数的渐进上界。
(3)二叉查找树:
执行基本操作的时间与树的高度成正比。搜索、插入、删除的复杂度等于树高,期望O(lgn),最坏O(n)(数列有序,树退化成线性表)
(4)红黑树:
1、时间复杂度:
基本动态集合操作:O(log n),n是树中元素的数目。
2、性质:
1)节点是红色或黑色。
2)根节点是黑色。
3)每个叶节点(NIL节点)是黑色的。
4)如果一个结点是红的,则它的两个儿子都是黑的(不能有两个连续
红结点)
5)从任一节点到其子孙结点的所有路径都包含相同数目的黑色节点。
3、相关概念,定理:
1)黑高度:从某个结点出发(不包括该结点)到达一个叶结点的任意一条路径上,黑色结点的个数称为该结点x的黑高度,bh(x)。红黑树的黑高度定义为其根节点的黑高度。
2)一颗有n个内结点的红黑树的高度至多为2lg(n+1)。(用2-3-4树理解)
3)在一颗黑高度为K的红黑树中,总结点数最多有22k+1-1,此时内结点
最多为22k-1(满二叉树,红黑交替),内结点最少有2k-1
4)RB-INSERT-FIXUP操作所作的旋转不超过两次,RB-DELETE-FIXUP所作的操作至多三次旋转
(5)动态规划:
1、装配线调度:FASTEST-WAY时间复杂度O(n)
2、矩阵链乘法:MATRIX-CHAIN-ORDER时间复杂度O(n3)
3、最长公共子序列:LCS-LENGTH时间复杂度为O(mn),m、n为序列的长度
4、最优二叉查找树:OPTIMAL-BST时间复杂度为O(n3)
(6)贪心算法:
1、活动选择问题:初试时活动已按结束时间排序,O(n),否则可在O(nlgn)内排序
2、哈夫曼编码:Q用最小二叉堆实现,运行时间在O(nlgn)
3、任务调度问题:时间复杂度为O(n2),因为算法中O(n)次独立性检查中每一次都有花O(n)的时间
(7)二项堆:
1、可合并堆时间复杂度
过程二叉堆(最坏)二项堆(最坏)Fibonacci(平摊)MAKE-HEAPΘ(1)Θ(1)Θ(1)
INSERTΘ(lgn)Ω(lgn)Θ(1)
MINIMUMΘ(1)Ω(lgn)Θ(1) EXTRACT-MINΘ(lgn)Θ(lgn)O(lgn) UNIONΘ(n)Θ(lgn)Θ(1) DECREASE-KEYΘ(lgn)Θ(lgn)Θ(1) DELETEΘ(lgn)Θ(lgn)O(lgn)
2、二项树B k是一种递归定义的树,由两颗B k-1连接而成,其中一颗树的根是另一颗树的根的最左孩子
性质:
1)共有2k个结点
2)树的高度为k
3)在深度i处恰有(上k,下i)(因此叫二项树)个结点,其中i=0,...,k;
4)根的度数为k,它大于任何其他结点的度数,并且,如果对根的子女从左到右编号为k-1,k-2,...,0,子女i是子树Bi的根。
5)在一颗包含n个结点的二项树中,任意结点的最大度数为lgn
3、二项堆H由一组二项树构成,但需要满足下面两个性质:
1)H中的每个二项树遵循最小堆的性质:结点的关键字大于等于其父结点
的关键字。(最小堆性质、度的唯一性)
2)对于任意非负整数k,在H中至多有一棵二项树的根具有度数k。
二、综合:
(1)分治法(自顶向下)
1、分解:将原问题分解成一系列子问题
2、解决:递归的解各子问题,若子问题足够小,则直接求解
3、合并:将子问题的结果合并成原问题的解
适用条件:
1、原问题可以分解为若干与原问题相似的子问题
2、子问题的解可以求出
3、子问题的解可以合并成原问题的解
4、分解出的子问题应相互独立,即没有重叠子问题
(3)合并排序(merge sort):
1、分解:将n个元素分成各含n/2个元素的子序列;
2、解决:用合并排序法对两个子序列递归地排序;
3、合并:合并两个已排序的子序列以得到排序结果。
(4)动态规划(自底向上):
1、描述问题的最优解结构特征
2、递归定义最优解值
3、自底向上计算最优解值
4、从已计算最优解值的信息中构造最优解结构
两个要素:最优子结构和重叠子问题
(5)贪心算法
1、确定问题的最优子结构性质
2、将优化的问题转化为一种选择,即贪心选择
3、贪心选择只能有一个子问题非空
4、证明贪心选择是正确的
两个要素:贪心选择性质和最优子结构
(6)主方法
T(n)=a*T(n/b)+f(n)其中a≥1和b>1是常数,f(n)是一个渐近正的函数。n 为非负整数,n/b指floor(n/b)或ceiling(n/b)。那么T(n)可能有如下的渐近界:
1、若对于某常数ε>0,有f(n)=O(n^(log_b(a)-ε)),则T(n)=Ө(n^(log_b(a)));
2、若f(n)=Ө(n^(log_b(a))),则T(n)=Ө(n^(log_b(a))*lgn);
3、若对某常数ε>0,有f(n)=Ω(n^(log_b(a)+ε)),且对常数c<1与足够大的n,有a*f(n/b)≤c*f(n),则T(n)=Ө(f(n))。