软件设计师真题知识点汇总
2021下半年软考中级软件设计师上午真题分析
1、关于PCI总线和SCSI总线的叙述
PCI总线是并行内总线, SCSI总线是并行外总线
2、关于中断方式与DMA方式的叙述
中断方式与DMA方式都可实现外设与CPU之间的并行在工作
3、中断向量提供
中断服务程序入口地址
4、可以有效防治计算机病毒的策略是
安装并及时升级防病毒软件
5、计算机指令系统采用多种寻址方式。立即寻址是指操作数包含在指令中:寄存器寻址是指操作数在寄存器中,直接寻址是指操作数的地址在指令中。这三种寻址方式操作数的速度()
立即寻址最快;寄存器寻址次之,直接寻址最慢
6、()是一种需要通过周期性刷新来保持数据的存储器件(提示:主存—分类知识点)
DRAM
7、二进制1111转化成十进制
1111 8+4+2+1=15
1110 8+4+2+0=14
1100 8+4+0+0=12
1000 8+0+0+0=8
8、AES是一种()算法。(提示:对称加密技术知识点)
分组加密
9、下列不能用于远程登陆或控制的是()
IGMP
注意:远程登录是应用层做的事情
比如:SSH、Telnet、RFB
10、包过滤防火墙对() 的数据报文进行检查。
网络层
11、防火墙通常分为内网、外网和DMZ三个区域,按照受保护程度,从低到高正确的排列次序为()
外网、DMZ和内网
12、() 是构成我国保护计算机软件著作权的两个基本法律文件。
《中华人民共和国著作权法》和《计算机软件保护条例》
13、X公司接受Y公司的委托开发了一款应用软件,双方没有订立任何书面合同。在此情形下,()享有该软件的著作权。
X公司
14、广大公司(经销商)擅自复制并销售恭大公司开发的OA软件已构成侵权。鸿达公司在不知情时从广大公司(经销商)处购入该软件并已安装使用在鸿达公司知道了所使用的软件为侵权复制的情形下其使用行为()
侵权,支付合理费用后可以继续使用该软件
15、绘制分层数据流图(DFD)时需要注意的问题中,不包括() 。
图中要表示出控制流
绘制分层数据流图(DFD)时需要注意的问题中,包括:给图中的每个数据流、加工、数据存储和外部实体命名,一个加工不适合有过多的数据流,分解尽可能均匀
16、以下关于软件设计原则的叙述中,不正确的是出()软件设计原则:高内聚,低耦合
模块规模越小越好
软件设计原则的叙述:将系统划分为相对独立的模块,模块之间的耦合尽可能小,模块的扇入系数和扇出系数合理
17、在风险管理中,通常需要进行风险监测,其目的不包括()
消除风险
在风险管理中,通常需要进行风险监测,其目的包括:评估所预测的风险是否发生,保证正确实施了风险缓解步骤,收集用于后续进行风险分析的信
18、计算关键路径和松弛时间
20、程序设计语言知识点
21、对高级程序语言进行编译的过程中,使用() 来记录源程序中各个符号的必要信息,以辅助语义的正确性检查和代码生成。
符号表
22、有限自动机
23、在单处理机计算机系统中有1台打印机、1台扫描仪,系统采用先来先服务调度算法。假设系统中有进程P1、P2、P3、P4,其中P1为运行状态,P2为就绪状态,P3等待打印机,P4等待扫描仪。此时,若P1释放了扫描仪,则进程P1、P2、P3、P4的状态分别为() 。
等待、运行、等待、就绪
24、PV操作
25、磁盘结构与参数知识点
26、以下关于增量模型优点的叙述中,不正确的是() 。
系统管理成本低、效率高、配置简单
关于增量模型优点的叙述中,正确的是:强调开发阶段性早期计划,第一个可交付版本所需要的时间少和成本低,开发由增量表示的小系统所承担的风险小,系统管理成本高、效率低、配置复杂
27、以下关于敏捷统过程(AUP) 的叙述中,不正确的是()统一过程(UP/RUP)
采用经典的UP阶段性活动,即初始、精化、构建和转换
关于敏捷统过程(AUP) 的叙述中,正确的是:在大型任务上连续,在小型活动上迭代,每一个不同的系统都需要一套不同的策略、约定和方法论,采用经典UP阶跃性活动—开始、加工、构建以及变迁
具体介绍参考这位博主:https://blog.csdn.net/weixin_37123068/article/details/87862638
28、在ISO/IEC软件质量模型中,可移植性是指与软件可从某环境行移到另一环境的能力有关的一组属性,其子特性不包括()
易测试性
在ISO/IEC软件质量模型中,可移植性是指与软件可从某环境行移到另一环境的能力有关的一组属性,其子特性包括:适应性,易安装性,易替换性
扩展
软件质量特性
软件质量的六大特征:功能性,可靠性,易使用性,效率,可维护性,可移植性
ISO/IEC 9126软件质量模型
ISO/IEC 9126软件质量模型由3个层次组成:第一层是质量特性,第二层是质量子特性,第三层是度量指标。本模型的质量特性和质量子特性如图
功能性:适,准,互,依,安
可靠性:成熟,容错,易恢复
易使用性:易理解,易学,易操作
效率:时间,资源
可维护性:易分析,易改变,易测试,稳定
可移植性:适应,易安装,易替换,一致性
Mc Call软件质量模型
Mc Call软件质量模型从软件产品的运行、修正和转移3个方面确定了11个质量特性。Mc Call的三层模型框架,第一层是质量特性,第二层是评价准则,第三层是度量指标。
29、在软件开发过程中,系统测试阶段的测试目标来自于()阶段。V模型
需求分析
30、信息系统的文档是开发人员与用户交流的工具。在系统规划和系统分析阶段,用户与系统分析人员交流所使用的文档不包括()。
用户使用手册
信息系统的文档是开发人员与用户交流的工具。在系统规划和系统分析阶段,用户与系统分析人员交流所使用的文档包括:可行性研究报告,总体规划报告,项目开发计划
31、系统可维护性是指维护人员理解、改正、改动和改进软件系统的难易程度,其评价指标不包括()
一致性
系统可维护性是指维护人员理解、改正、改动和改进软件系统的难易程度,其评价指标包括:可理解性,可测试性,可修改性
32、面向对象设计时包含的主要活动是
识别类及对象、定义属性、定义服务、识别关系识别包
面向对象分析:认定对象、组织对象、描述对象间的相互作用、确定对象的操作
33、在面向对象设计时,如果重用了包中的一个类,那么就要重用包中的所有类,这属于()原则。
共同重用
34、某电商系统在采用面向对象方法进行设计时,识别出网店、商品、购物车、订单买家、库存、支付(微信、支付宝)第类。其中,购物车与商品之间适合采用( )关系,网店与商品之间适合采用( )关系。
依赖。聚合
35、在设计某购物中心的收银软件系统时,要求能够支持在不同时期推出打折、返利、满减等不同促销活动,则适合采用() 模式。
策略(Strategy)
36、Python语言的特点不包括() 。
编译型
Python语言的特点包括:跨平台、开源,支持面向对象程序设计,动态编程
37、在Python语言中,() 是一种可变的、有序的序列结构,其中元素可以重复。
列表(list)
38、以下Python语言的模块中,() 不支持深度学习模型。
Matplotlib这是一个画图工具
Python语言的模块中,支持深度学习模型的有:TensorFlow,PyTorch,Keras
39、采用三级模式结构的数据库系统中,如果对一个表创建聚簇索引,那么改变的是数据库的()
内模式物理级别
40、设关系模式R(U,F), U={A1,A2, A3, A4},函数依赖集F={A1→A2,A1→A3, A2→A4},关系R的候选码是( )。下列结论错误的是( )。
A1 A2→A3为F所蕴涵
41、给定学生关系S(学号,姓名,学院名,电话,家庭住址)、课程关系C(课程号,课程名,选修课程号)、选课关系SC(学号,课程号,成绩)。查询“张晋”选修了“市场营销”课程的学号、学生名、学院名、成绩的关系代数表达式为: π1,2,3,7(π 1,2,3( ))∞( ))。
σ2='张晋'(S) π1,2(σ2='市场营销'(C))∞SC
42、数据库的安全机制中,通过提供() 供第三方开发人员调用进行数据更新,从而保证数据库的关系模式不被第三方所获取。
存储过程
43、若栈采用顺序存储方式,现有两栈共享空间V[..n],, top[j]代表i( i=1,2)个栈的栈顶(两个栈都空时top[1]= 1、top[2]= 团),栈1的底在V[1],栈2的底在V[n], 则栈满(即n个元素暂存在这两个栈)的条件是()
top[1]- top[2]== 1
44、采用循环队列的优点是()
入队和出队可以在队列的同端点进行操作
45、二叉树的高度是指其层数,空二叉树的高度为0,仅有根结点的二叉树高度为若某二叉树中共有1024个结点,则该二叉树的高度是整数区间() 中的任
[11, 1024]
11表示满二叉树,1024表示每层只有一个节点。
46、对有向图G进行拓扑排序得到的拓扑序列中,顶点Vi在顶点Vj之前,则说明G中()
一定不存在有向弧<Vj, Vi>
47、归并排序算法在排序过程中,将待排序数组分为两个大小相同的子数组,分别对两个子数组采用归并排序算法进行排序排好序的两个子数组采用时间复杂度为0(n)的过程合并为一个大数组。根据上述描述,归并排序算法采用了( )算法设计策略。归并排序算法的最好和最坏情况下的时间复杂度为( )。
分治 O(nlg2n) 和O(nlg2n)
O(n2)是快速排序
分治法的时间复杂度为:O(nlogn)
动态规划算法一般是n步叠代计算局部最优解,每一步叠代需要计算m个子项,那么时间复杂度就是O(m *n)。如果只保存一步叠代的结果,空间复杂度就是O(m);如果需要保存k步叠代结果,空间复杂度就是O(m *k)。
48、已知一个文件中出现的各字符及其对应的频率如下表所示。采用Huffman编码,则该文件中字符a和c的码长分别为( )。若采用Huffman编码,则字序列“110001001101”的编码应为( )。
1和3 face
这道题详细解答:https://blog.csdn.net/CH3COCH2COOC2H5/article/details/121249284
49、用户在电子商务网站上使用网上银待支付时,必须通过( )在Internet与银行专用网之间进行数据交换。
支付网关SSH协议
50、ARP报文分为ARP Request和ARP Response,其中ARP Request采用( )进行传送,ARP Response采用( )进行传送。
广播 单播
51、页面的标记对中,( )用于表示网页代码的起始和终止。
< html>< /html>
下面这个是标准的网页格式
<html>
<head>
<title>页标题</title>
</head>
<body>
</body>
</html>
52、以下对于路由协议的叙述中,错误的是()。
路由协议是一种允让许数据包在主机之间传送信息的一种协议
以下对于路由协议的叙述中,正确的是:
路由协议是通过执行一个算法来完成路由选择的一种协议
动态路由协议可以分为距离向量路由协议和链路状态路由协议
路由器之间可以通过路由协议学习网络的拓扑结构
53、One is that of a software engineer and the other is a DevOps engineer. The biggest different is in their (1). Software engineers focus on how well the computer software fts the needs of the client while a DevOps engineer has a broader focus that includes software development, how the software is deployed and providing (2) support through the cloud while the software is continually (3).
A software engineer creates computer programs for people to use based upon their security and function ality needs. A DevOps engineer also works on computer applications, but manages the building, deployment and operation as a(4) autormated process. Software engineers often work separately from the operations side of a business. They create the software a business client needs and then monitor the performance of their software products to determine if up grades are necessary or if more serious improvements are needed. DevOps engineers work with the operational side of a business and manage the workflow to (5) software tosmoothly function with automated processes. Both professions require knowledge of Computer programming languages.
(1)
A、focus
B、process
C、goal 目标
D、function
(2)
A、developing
B、deploying
C、training
D、operational 操作的
(3)
A、developed
B、functional
C、constructed 构建
D、secure
(4)
A、single
B、whole 整体
C、continuous
D、independent
(5)
A、develop
B、integrate 整合
C、analyse
D、maintain
信管网参考答案:C、D、C、B、B
One is that of a software engineer and the other is a DevOps engineer. The biggest different is in their
goal
. Software engineers focus on how well the computer software fts the needs of the client while a DevOps engineer has a broader focus that includes software development, how the software is deployed and providingoperational
support through the cloud while the software is continuallyconstructed
.
A software engineer creates computer programs for people to use based upon their security and function ality needs. A DevOps engineer also works on computer applications, but manages the building, deployment and operation as awhole
autormated process. Software engineers often work separately from the operations side of a business. They create the software a business client needs and then monitor the performance of their software products to determine if up grades are necessary or if more serious improvements are needed. DevOps engineers work with the operational side of a business and manage the workflow tointegrate
software tosmoothly function with automated processes. Both professions require knowledge of Computer programming languages.翻译:
一个是软件工程师,另一个是DevOps工程师。最大的不同在于他们的目标。软件工程师关注计算机软件如何满足客户的需求,而DevOps工程师则关注更广泛的领域,包括软件开发、软件如何部署以及在软件持续构建的同时通过云提供操作支持。
软件工程师根据人们的安全和功能需求创建计算机程序供他们使用。DevOps工程师也负责计算机应用程序,但将构建、部署和操作作为一个完整的自动匹配过程进行管理。软件工程师通常与企业的运营部门分开工作。他们创建业务客户需要的软件,然后监控其软件产品的性能,以确定是否需要升级,或者是否需要更严重的改进。DevOps工程师与企业的运营部门合作,并管理工作流,以将软件与自动化流程顺利地集成在一起。这两种职业都需要计算机编程语言的知识。
其实这样理解起来比较好:16位浮点数=阶符1位+阶码值6位+数符1位+尾数8位
上面公式里的R=6+1=7 ; M=8+1=9
采用DMA方式传送数据时,每传送一个数据都需要占用一个存储周期。
CPU
https://www.cnblogs.com/gnivor/p/15679241.html
磁盘容量的计算
按功能划分计算机系统
二叉查找树中进行查找时,查找效率最差的二叉查找树是单枝树。
有序数组采用插入排序 O(n)
无序数组采用快速排序 O(n2)
中缀表达式转后缀表达式:https://blog.csdn.net/zm_miner/article/details/115324206
后缀表达式转中缀表达式
假如一个中缀表达式是(6+3*(7-4))-8/2
画出它的二叉树。
中序遍历是中缀表达式(6+3*(7-4))-8/2
后序遍历是后缀表达式 6374-*+82/-
循环队列
rear:队尾
head:队头
len:队长度
队列存储空间容量:M
队头元素的指针计算公式为:(rear-len+1+M)%M
队长度计算公式为:(rear-head+M)%M
哈夫曼树字符频率越小的越在下层,且左孩子小于右孩子,相加等于根.构造过程中,从最小的两个字符频率开始,求和获得两个孩子的根节点,继续比较,如果有两个数比这个根节点小,那就重新构造一个分支,否则,就在原分支继续构造即可,直到构造成一棵树.
如果哈夫曼树有n个节点,那么它的叶子节点就有(n+1)/2
栈的应用:表达式求值,括号匹配、递归
队列的应用:打印队列
优先队列通常采用二叉堆数据结构实现,插入和删除的时间复杂度为:O(lgon)
动态规划法的时间复杂度为:O(n)
Netstat命令的连接状态
FTP协议的端口
域名组成:计算机主机名.本地名.组名.最高层域名
protocol 协议
convention 习俗
coordination 协作
agreements 协议
S/MIME可以提供安全电子邮件服务。
闪存:
- 掉电后信息不会丢失,属于非易失性存储器
- 以块为单位进行删除操作
- 闪存代替的ROM
- 在嵌入式系统中可以使用flash代替ROM存储器。
SQL注入,就是通过把SQL命令插入到web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,目标就是为了获得数据库的权限,从而非法获得数据。
词法:识别出一个个“单词”或“符号”
语法:将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等;
语义:类型分析和检查
栈空间:基本数据类型的创建与赋值存放在栈空间中。
堆空间:引用类型的创建与赋值存放在堆空间中,比如:数组、字符串、对象。
Java采用即时编译
面向对象“分析”包含5个活动:
- 认定对象
- 组织对象
- 描述对象间的相互作用
- 确定对象的操作
- 定义对象的内部信息。
面向对象“设计”时包含的主要活动是
识别类及对象、定义属性、定义服务、识别关系识别包
稀疏矩阵的压缩存储,数据结构提供有 3 种具体实现方式:
- 三元组顺序表;
- 行逻辑链接的顺序表;
- 十字链表;
每次排序能够确定至少一个元素最终位置的排序:
- 快速排序
- 冒泡排序
- 堆排序
- 选择排序
分支限界算法:所谓分支就是采用广度优先的策略。
在电子邮件服务协议中
- SMTP是”发“信服务器的协议
- POP3是“收”信服务器的协议
release 释放
flushdns 清除
displaydns 显示
registerdns 注册
POP3协议是适用于C/S结构的脱机模型的电子邮件协议。(收邮件)
SMTP协议是简单邮件传输协议。(发邮件)
IMAP协议是由美国华盛顿大学所研发的一种邮件获取协议(收发)
- 安全认证介绍
- PPP的NCP可以继承多种协议的三层数据包
- PPP使用LCP控制多种链路的参数(建立、认证、压缩、回拨)
- PPP的认证类型
- PPP的pap认证是通过二次握手建立认证(明文不加密)
- PPP的chap挑战握手认证协议,通过三次握手建立认证(密文采用MEDS加密)
- PPP的双向验证,采用的是chap的主验证风格
- PPP的加固验证,采用的是两种(pap,chap)验证同时使用
查找ip 是host
查找域名 是本地缓存
HTML的A标签可以放置一个电子邮件的
地址,例如:< a href="mailto:name@email .com">name@email .com< /a>
补码最适合进行数字加减运算(尾数) M
移码最适合表示浮点数阶码 R
计算机中CPU的中断响应时间指:从发出中断请求到开始进入中断处理程序。
组间直接映射,组内全相联映射
访问速度:通用寄存器>Cache>内存>硬盘
立即寻址最快,寄存器寻址次之,直接寻址最慢
预处理、编译、汇编、链接
C语言编译过程分成四个步骤:
1、由.c文件到.i文件, 这个过程叫预处理
2、由.i文件到.s文件, 这个过程叫编译
3、由.s文件到.o文件,这个过程叫汇编
4、由.o文件到(.exe)可执行文件,这个过程叫链接
MIPS=主频/CPI
RIP(路由信息协议):是一种内部网关协议(IGP),是一种动态路由协议,用于自治系统(AS)内的路由信息的传递。
OSPF(开放式最短路径优先):是一种内部网关协议,用于在单一自治系统(AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议,故运作与自治系统内部。
BGP(边界网关协议):是运行于TCP上的一种自治系统的外部网关协议。BGP是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。
- 线程共享的内容包括
- 进程代码段
- 进程的公有数据
- 进程打开的文件描述符
- 信号的处理器
- 进程的当前目录
- 进程的用户ID与进程组ID
- 线程独有的内容包括
- 线程ID
- 寄存器组的值
- 线程堆栈
- 错误返回码
- 线程的信号屏蔽码
类型 | 说明 | 记忆方法 |
---|---|---|
包含多态 | 一个继承了父类的一切属性的子类的对象同时属于父类2.子类型化 | 使用最多,子类型化 |
参数多态 | 与类模板相关联,类模板所包含的操作涉及的类型必须用类型参数实例化 | |
强制多态 | 通过语义操作把一个变量的类型加以变换 | 强制转换 |
过载多态 | 同一个名(操作符,函数名等)在不同的上下文中有不同的类型(软考考察最多) | 上下文,重载 |
无效ip地址:169.254.xxx.xxx
表达式序列:由高到低
lgn,n2/3,1000n,n4,2n,n!
无向连通图G的顶点数为n,则图G最少和最多的边分别为:n-1,n*(n-1)/2
连通图G的顶点数位n,则G的生成树中顶点数和边数分别为n,n-1
.
- 分布式数据库系统
- 共享性:是指数据存储在不同的节点数据共享;
- 自治性:是指每个节点对本地数据都能独立管理;
- 可用性:是指当某一场地故障时,系统可以使用其他场地上的副本而不至于使整个系统瘫痪;
- 分布性:是指在不同的场地上的存储;
POP3是基于TCP协议的,默认端口110。
重放攻击:就是攻击者发送一个目的主机已经接收过的包,来达到欺骗系统的目的,主要用于身份认证的过程。为了抵御重放攻击,在身份认证时可以采用时间戳的方式。
词法分析器的任务是把源文件的字符流转换成记号流。语法分析器根据语法规则识别出记号流中的结构(短语,句子),并构造一棵能够正确反映该结构的语法树。
cascade 外键
check 约束
GRANT 授予权限
REVOKE 回收权限语句
数据流图建模遵循自顶向下,从抽象到具体。
模块结构图由:模块、调用、数据、控制信息和转接符号5种基本符号组成。
UML图里的组件图中:
- 末端有一个完整的圆周的接口符号代表组件提供接口
- 末端只有半个圆的接口符号代表组件需求接口
对称加密又称为共享密钥加密(分组加密)
非对称加密又称为公开密钥加密
计算机病毒具有:隐蔽性、传染性、潜伏性、触发性和破坏性。
使用web方式收发电子邮件时必须设置账号密码登录
商标权可以通过续注延长拥有期限,而著作权、专利权和设计权的保护期限都是有限期的。
《中华人民共和国著作权法》和《计算机软件保护条例》是构成我国保护计算机软件著作权的两个基本法律文件。
结构化方法的分析结果由四部分组成:
- 一套分层的数据流图
- 一本数据字典
- 一组小说明(也叫加工逻辑说明)
- 补充材料
注意:结构图不属于结构化分析的输出。
软件开发模型的V模型中的概要设计阶段内容包括:
- 划分模块接口
- 系统架构
- 功能模块设计
- 数据库设计
- 接口设计
需求分析会得到DFD,将DFD转换为软件结构和数据结构,概要设计就是结构化设计,其主要目标就是给出软件的模块结构,用软件结构图表示。
数据库体系结构:
-
外模式------->视图
-
概念模式----------->基本表
-
内模式-------->存储文件
对阶的方法:将小阶向大阶对齐,同时将尾数右移n位
1000-----》1.0×103
119-------》1.19×102
对阶成这两个数的最高位103
把1.19×102-----》0.119×103
数据字典是指对数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述。
其条目
有数据流、数据项、数据存储、基本加工。
COCOMO II模型的估算选择包括:对象点、功能点、源代码行数。
Lisp是典型的函数式编程语言。
prolog、Python、Java/C++是面向对象编程语言
脚本语言有很多种:常见的有JavaScript、VBScript、Perl、PHP、Python、Ruby语言。
拓展资料:脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。
编译方式生成逻辑上与源程序等价的目标程序,解释方式不生成。
系统目录就是指操作系统的主要文件存放的目录,目录中的文件直接影响到系统是否正常工作。
I/O设备管理软件一般分为4个层次,具体层次从上往下分别为
- 用户I/O层:发出I/O调用。
- 设备无关I/O层:设备名解析、阻塞进程、分配缓冲区。
- 设备驱动程序:设置寄存器,检查设备状态。
- 中断处理程序:I/O完成后唤醒设备驱动程序。
- 硬件:完成具体的I/O操作。
增量模型特点:
- 容易理解,管理成本低。
- 核心的产品往往首先开发,因此经历最充分的“测试”
- 第一个可交付版本所需要的成本低,时间少。
软件维护工具主要有:
- 版本控制工具;
- 文档分析工具;
- 开发信息库工具;
- 逆向工程工具;
- 再工程工具;
- 配置管理支持工具;
概要设计的内容:
- 系统架构
- 模块划分
- 系统接口
- 数据设计
耦合程度取决于:
- 调用模块的方式
- 各个模块之间接口的复杂程度
- 通过接口的信息类型
注意:模块提供的功能数不会影响耦合程度。
目前常用的调试方法有试探法、回溯法、对分查找法、演绎法和归纳法。
对象的状态包括这个对象的所有属性(通常是静态的)以及每个属性当前的值(通常是动态的);
动态绑定:程序运行过程中
,把函数(或过程)调用与响应调用所需要的代码相结合的过程称为动态绑定。
静态绑定:是指在程序编译过程中
,把函数(方法或者过程)调用与响应调用所需要的代码结合的过程称之为静态绑定。
用哈希表存储元素时,需要进行冲突(碰撞)处理,冲突是指关键字不同的元素被映射到相同的存储位置。
邻接表的时间复杂度:O(n+e)
邻接矩阵的时间复杂度:O(n2)
Linux中,想要修改一个文件的权限设置可以使用chmod命令。
数据流图中常见的3种错误:
1.有输入但是没有输出,我们称之为“黑洞”。
2.有输出但没有输入。我们称之为“奇迹”。
3.输入不足以产生输出,我们称之为“灰洞"。
动态规划法:0-1背包问题,矩阵连乘问题,最长公共子序列问题
贪心算法:邻分(分数)背包问题 最短路径问题
回溯法:
分治算法:在实际情况中,分治算法大都采用递归来实现;
分治法的时间复杂度为:O(nlogn)
动态规划算法一般是n步叠代计算局部最优解,每一步叠代需要计算m个子项,那么时间复杂度就是O(m *n)。如果只保存一步叠代的结果,空间复杂度就是O(m);如果需要保存k步叠代结果,空间复杂度就是O(m *k)。
动态规划法的时间复杂度为:O(n)