算法基础知识【6】(8-16) + 计算机网络基础知识【10】(08-16)

Date: 2019-08-16

part  one  算法基础知识

1.  为查找某一特定单词在文本中出现的位置,可应用的串运算是(     )   子串定位

2.  算法独立于具体的程序设计语言,与具体的计算机无关()    对,与计算机无关,但是与具体的程序设计语言有一定的相关性

补充:

算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。也就是说,能够对一定规范的输入,在有限时间内获得所要求的输出。如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度时间复杂度来衡量。

算法优劣与所用计算机无关,但与算法描述语言有关

3.  对长度为n 的线性表作快速排序,在最坏情况下,比较次数为  (n*(n-1)/2)

4.  红黑树中已经有n个数据,寻找某个key是否存在的时间复杂度为()。  O(logn)

解释: 

红黑树是平衡二叉树,也就是左右子树是平衡的,高度大概相等。

这种情况等价于一块完全二叉树的高度,查找的时间复杂度是树的高度,为logn

5.  不用递归就不能实现二叉树的前序遍历()  错误,任何的递归程序都可以实现相应的非递归版本,要么用栈,要么用迭代的思想

6. 在数据结构中,从逻辑上可以将其分为()  线性结构(如表 栈 队列)和非线性结构(如树 图)

解释:   

(1)数据结构的定义:

数据结构就是研究数据的逻辑结构物理结构以及它们之间相互关系,并对这种结构定义相应的运算且确保经过这些运算后所得到的新结构仍然是原来的结构类型。

(2)数据结构的划分:

数据结构从逻辑上可分为两大类:

1)线性结构。

线性结构的特点是元素之间一对一的关系;除了最后一个元素,每个元素都有一个后继;除了第一个元素,每个元素都有一个前驱。

常见的线性结构如线性表,栈,队列。

2)非线性结构。

非线性结构的特点是一个元素可能有多个前驱和后继。

常见的非线性结构如树,图。

7.  对线性表采用折半查找(二分查找),该线性表必须_______。有序的顺序表(顺序表:顺序存储的线性表)

具体:元素按值有序排列,并且采用顺序存储结构

8.  设n 是描述问题规模的非负整数,下面程序片段的时间复杂度是( )。O(logn)
x=2;
while(x<n/2)
x=2*x; 

9.The best time complexity of quick sort algorithm is: O(nlogn)

10.  对序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排列变为{4,9,-1,8,20,7,15};则采用的是()排序   希尔排序

A. 选择
B. 快速
C. 希尔
D. 起泡

解释: 

1)

希尔排序,选择步长为3,

分为[15,8,4][9,20][7,-1]三组,

对这三组插入排序得[4,8,15][9,20][-1,7]

对应相对位置,即为一次排序后的结果.

2)采用排除法,迅速扫描一下,最大的不再最后,最小的不再最前,肯定排序冒泡和选择;再次扫描,不是俩个有序数列,排除选择。所以就是希尔。咋样之间看出来增量是三呢?观察前后不一样的数字,发现 15,4-》4,15  ; 假设增量为6,验证不对。  7,-1,-》-1,7;假设增量为3,

11. 下面描述中正确的为: C

A. 线性表的逻辑顺序与物理顺序总是一致的。 (线性表逻辑上是线性的,存储上可以是顺序的,可以是链式的 )
B. 线性表的顺序存储表示优于链式存储表示。 (顺序存储和链式存储各有优缺点 )
C. 线性表若采用链式存储表示时所有结点之间的存储单元地址可连续可不连续。 (链式存储可以连续,可以不连续,存储时不管其连续还是不连续,都是用指针指向下一个结点 )
D. 二维数组是其数组元素为线性表的线性表。 (二维数组是顺序存储的线性表,其元素都是线性表的元素 )

12.  KMP算法下,长为n的字符串中匹配长度为m的子串的复杂度为()  O(N+M)

补充:简单匹配算法的时间复杂度为O(m*n),KMP匹配算法时间复杂度为O(m+n).

13.  设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列()方法可以达到此目的。   堆排序算法

14.  假设你只有100MB的内存,需要对1GB的数据进行排序,最合适的算法是()  归并排序算法

解释: 插入,冒泡,选择三个都需要把所有的数据一次性加入到内存中(属于内部排序算法),才能进行。而归并排序可以完成。

首先内存只有100Mb,而数据却有1Gb,所以肯定没法一次性放到内存去排序,只能用外部排序,而外排序通常是使用多路归并排序,即将原文件分解成多个能够一次性装入内存的部分(如这里的100Mb),分别把每一部分调入内存完成排序(根据情况选取适合的内排算法),然后对已经排序的子文件进行多路归并排序(胜者树或败者树)。

15.  某算法的时间复杂度为O(n2),表明该算法的   执行时间与n^2成正比

16.  设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11 为第一元素,其存储地址为1,每个元素占一个地址空间,则a85 的地址为()  33

解释:a85表明我们仅仅需要存储下三角元素,

数组下标从1开始,只存储其下三角形元素,在a8,5的前面有7行,第1行有1个元素,第2行有2个元素,…,第7行有7个元素,这7行共有(1+7)×7/2=2 8个元素,在第8行中,a8,5的前面有4个元素,所以,a8,5前有28+4=32个元素,其地址为33。

17.  如果要求一个线性表既能较快的查找,又能适应动态变化的要求,则可采用 ()查找法。  分块查找

null顺序查找二分查找分块查找
表的结构有序、无序有序块内无序、块间有序
表的存储顺序、链式顺序顺序、链式
平均查找长度最大最小中间
时间复杂度O(n)O(log2n)中间

 

分块查找是折半查找顺序查找的一种改进方法,分块查找由于只要求索引表是有序的,对块内节点没有排序要求,因此特别适合于节点动态变化的情况。而折半查找,不适合动态变化;顺序查找查询复杂度高;

19.  如果需要在O(nlog2n)的时间复杂度内完成对含有n个元素的关键字序列进行稳定性排序,可以选择的排序方法是(    )  归并

20.  假设某算法的时间复杂度符合递推关系式T(n)=2T(n/2)+n,那么该算法的时间复杂度相当于() O(nlogn)

举例说明:由时间代价严格推出时间复杂度比较复杂,对于这种题,可用特例验证,不过需要注意的是特例不能取太少,至少n取到5,这样规律基本就可以确定了。 
  T(1)=1 
  T(2)=2T(1)+2=4 
  T(3)=2T(1)+3=5 
  T(4)=2T(2)+4=12 
  T(5)=2T(2)+5=13
  很容易排除D选项,其递增速率介于O(n)和O(n2)之间,实际上可以参考归并排序的递推公式。

2)

所以根据主定理公式(master),f(n)=n = n^log(b,a)=n,满足第二条,T(n) = O(n^log(b,a) * logn) = O(nlogn)

21.  现有一数列{3, 2, 5, 7, 6, 8},要求按升序排序,下面说法正确的是:

快速排序,每次选择最后一个元素作为支点,需要比较12次

解释:快速排序,选择最后一个元素为基,第一遍需要5次比较,

第二趟对8的左侧进行快速排序,需要4次比较,结果使6,7交换,

第三次在6的左侧快速排序,需要2次比较,
第四次在5的左侧快排,需要1次比较,加起来5+4+2+1=12次

22.  智能手机的手势解锁密码是九宫格3X3的点阵中的一条路径,这条路 径最少连接四个点,最多连接九个点,请问总共有多少种解锁密码?(    )  10^5量级的方案

不考虑失效的方式(就是不连贯的情况),那么如果9个点的话,排列组合有9!(362880)种,比9少的都达不到9的量级,在减去失效的也不会跨量级,所以是100000的量级

23.  n皇后最坏情况下的时间复杂度为:() O(n^n)

解释N皇后:

一个n*n的棋盘,要在上面放n个皇后。规则:两个皇后之间如果是同列、同行、同对角线它们会互相攻击。也就是说:棋盘上的任意两个皇后不能为同列、同行、同对角线。对于这个问题、当n不大的时候,可以用穷举法实现。对于n皇后,每一行有n个位置可以放,一共n行。就会有n的n次方种情况

24.  一个线性序列(30,14,40,63,22,5),假定采用散列函数Hash(key)=key%7来计算散列地址,将其散列存储在A[0~6]中,采用链地址法解决冲突。若查找每个元素的概率相同,则查找成功的平均查找长度是(      )。4/3

解释: 

0 -- 14 -- 63

1 -- 22

2 -- 30

5 -- 40 -- 5

平均查找长度不应该是(1 + 2 + 1 + 1 + 1 + 2) / 6 = 4 / 3

补充:哈希查找的平均查找长度:先将所有元素按照hash函数以及相应的解决冲突的方案放入相应的bucket中,然后再计算每个元素的查找次数之和的平均值[注意:冲突发生时,查找次数将增加]。

二叉搜索树的平均查找长度ASL:sum(每一层节点数*该层高度)/节点数   【根节点的高度为1】  

有时候也会考察失败节点的平均查找长度!

25.  下列陈述错误的是(        )A

A. 概率算法的期望执行时间是指反复解同一个输入实例所花的平均执行时间
B. 概率算法的平均期望时间是指所有输入实例上的平均期望执行时间
C. 概率算法的最坏期望事件是指最坏输入实例上的期望执行时间
D. 概率算法的期望执行时间是指所有输入实例上的所花的平均执行时间

解释:

(1)平均的期望时间:所有输入实例上平均的期望执行时间。

(2)最坏的期望时间:最坏的输入实例上的期望执行时间。

26. 在下列表述中,()是错误的 ABD

A. 含有一个或多个空格字符的串称为空串 (长度为0 的串为空串,即为“” 。由多个空格字符构成的字符串称为空格串 )
B. 对n(n>0)个顶点的网,求出权最小的n-1条边便可构成其最小生成树 (如果权值最小的n-1条边构成了环的话,就不能构成最小生成树 )
C. 选择排序算法是不稳定的 
D. 平衡二叉树的左右子树的结点数之差的绝对值不超过1  (平衡二叉树的左右子树高度之差的绝对值不超过1. ,高度之差,并非节点数之差)

 

part two:计算机网络基础知识

1.  因特网中用于文件传输的协议是FTP。(        )正确

2.  Linux 是多用户多任务类型的操作系统。() 正确

补充:linux:多用户多任务 window:单用户多任务

3.  以下传输介质性能最好的是 () 。  光纤

解释:光纤比双绞线、同轴电缆抗干扰能要强,双绞线比同轴电缆电缆抗干扰能力要好点、微波对抗干扰能力要更强一些,但是性价比还是用光纤比较好

4.  break和continue的区别:break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch而执行switch以后的语句;当break语句用于do-while、for、while循环语句中时,可使程序终止循环而执行循环后面的语句,即满足条件时便跳出循环。continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环

5.  在 Internet 中不需运行 IP 协议的设备是 ()  集线器

路由器
集线器
服务器
工作站

解释:

路由器是网络层设备,需要运行IP协议;

服务器和工作站的网络层也运行IP协议;

集线器是物理层设备,不需要运行IP协议。

6.  ()对实时系统最重要。 及时性

实时系统是指: 系统能及时响应外部事件的请求,在规定的时间安内完成对该事件的请求,并控制所有实时任务协调一致地运行

7.  关系数据模型的三个组成部分包含有,数据模型的三要素:数据结构,数据操作,数据的约束条件

8.  局域网体系结构中 () 被划分成 MAC 和 LLC 两个子层。  数据链路层

解释:

局域网将数据链路层分割为哪两个子层?这两个子层分别完成了什么功能? 
答:局域网将数据链路层划分为两个子层:逻辑链路控制LLC子层和介质访问控制MAC子层,从而使LAN体系结构能适应多种传输介质。因此,对各种类型的局域网来说,其物理和MAC子层需要随着所采用介质和访问方法的不同发生改变,而这些不同对于LLC子层来说都是透明的。 
(1) LLC作为数据链路层的一个子层,使用MAC子层为其提供的服务,通过与对等实体LLC子层的交互为它的上层网络层提供服务。 
(2) MAC子层是用来实现介质访问控制的网络实体。MAC子层主要功能包括数据帧的封装/拆封、帧的寻址与识别、帧的接收与发送、链路的管理、帧的差错控制及MAC协议的维护等。

9.  与 WHERE G BETWEEN 60 AND 100 语句等价的子句是 ( )    WHERE G>=60AND G < =100

10.  对换技术的主要作用是( )。  提高内存利用率

解释:对换是指将内存中的暂时还不能被运行的进程或者暂时用不到的程序和数据,调到外存上,以便腾出足够的内存供在外存中等待的作业使用。这样就可以内存的利用率提升上去。

11.  在可变式分区方案中,某一作业完成后,系统回收期主存空间,并与相邻空闲区合并,为此需要修改空闲区表,造成空闲区数增 1 的情况是()

无上邻空闲区,也无下邻空闲区

12.  构造计算机网络的目的是() 资源共享

解释:最基本的功能 数据通信 核心主要功能 资源共享   ,所以目的就是资源共享

13.  一个广域网和一个局域网互联,需要的设备是()。  交换机

交换机
网关
集线器
NIC

补充解释:局域网通过广域网实现互联,常用互联设备有路由器和网关,而主要的互联设备是路由器

另外解释:

路由器是局域网连接到Internet的一种重要的设备,数据在Internet传输中是以路由的方式传输的

同时这道题也可以用排除法

B,网关,本身不是一种设备,是一种概念,是一个局域网连接到外网的接口

C,集线器,可以认为是物理层的设备,实现数据的广播转发,在局域网内使用

D,网卡,可以认为是数据链路层的设备,对数据帧的处理,明显也是在局域网内

14.  一个进程释放一种资源将有可能导致一个或几个进程()。  由阻塞变就绪

就绪状态是进程等待CPU。当某个进程需要的资源(非CPU)被其它进程占用时,会进入阻塞状态,而其它进程释放了资源后,则等待该资源的进程会由阻塞状态转为就绪状态,等待CPU执行。

15.  事务是数据库运行的基本单位。如果一个事务执行成功,则全部更新提交;如果一个事务执行失败,则已做过的更新被恢复原状,好像整个事务从未有过这些更新,这样保持了数据库处于( )状态。  一致性

解释:

  • 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。

  • 一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态。一致状态的含义是数据库中的数据应满足完整性约束。

  • 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行。

  • 持久性(Durability):已被提交的事务对数据库的修改应该永久保存在数据库中。

16.  操作系统为了管理进程和资源,需要构造和维护的表有    I/O表、文件表、内存表和进程表

17. 若要对数据进行字符转换、数字转换以及数据压缩,应在OSI的(      )层上实现。 表示层

补充:

表示层的作用:对数据进行翻译、加密和压缩(表示协议数据单元PPDU);

网络层的作用:负责数据包从源到宿的传递和网际互联(包);

传输层的作用:提供端到端的可靠报文传递和错误恢复(段);

会话层的作用:建立、管理和终止会话(会话协议数据单元);

18.   下面不采用虚电路服务的网络是__________。  internet网络

解释:互联网一般采用的是TCP/IP协议,因此其中流转的数据绝大部分是以数据包的形式传送的。但有部分业务是采用一些特殊协议在网络中建立了VPN通道或IP隧道来通信,这部分业务可以认为采用的是虚电路方式传送数据。

19.  一个进程执行时按{0,2,5,3,6,3,0,2,3,2}顺序访问页,进程分得3块主存块,采用LRU,产生多少次缺页中断()  7

解释:

LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”。
用链表实现算法如下:

  1. 新数据插入到链表头部;
  2. 每当缓存命中(即缓存数据被访问),则将数据移到链表头部;
  3. 当链表满的时候,将链表尾部的数据丢弃。

对题中所给进程序列{0,2,5,3,6,3,0,2,3,2}和3个主存块,按照LRU算法,调度过程如下:
0 !
0 2 !
0 2 5 !
2 5 3 !
5 3 6 !
5 6 3
6 3 0 !
3 0 2 !
0 2 3
0 3 2
其中标“!”的步骤中发生了缺页中断,总计7次。

20.  CBW指令的功能是( ) 把AL中的符号位扩展到AH中

21.  下列关于IP 路由器功能的描述中,正确的是( )。 I  II   IV
Ⅰ. 运行路由协议,设置路由表
Ⅱ. 监测到拥塞时,合理丢弃 IP 分组
Ⅲ. 对收到的 IP 分组头进行差错校验,确保传输的 IP 分组不丢失
Ⅳ、 根据收到的 IP 分组的目的 IP 地址,将其转发到合适的输出线路上

解释:

IP层为什么不对数据部分进行差错校验?

 

因为网络层是“尽最大努力完整的传输数据包”,差错检测已由数据链路层实现,IP层没必要再进行一次校验。

优点就是,因为不负责差错检测和纠错,所以可获得较高的传输性能。

缺点就是,因为IP层不负责差错检测,那么错误检测只能在传输层或应用层被发现,使纠正错误的时间增加了。

 

试想一下,如果两台PC跨INTERNET通信,之间隔了很多台路由器,PC1给PC2发了个数据包,到达第一台路由器后,在转发的过程中,数据包发生了错误:

1-因为IP层不做差错校验,所以第2台路由器通过广域网协议(HDLC、PPP等)收到数据后,只要数据链路层正常,它就无法得知收到的IP包是否正确,错误就会这么传递下去,至到PC2才被发现。

2-如果IP可以实现差错校验的功能,那么到了第2台路由器时,路由器2就不会再继续发错误包了,错误就会终止。

 

不过现在网络传输的误码率都极低,所以IP层没必要再做一次校验!

22.  细同轴电缆的传输距离理论上最大为?   185米   粗同轴电缆是500米

23.  并发的、面向连接的服务器可以有n个不同的进程 (  ) 错误

解释;面向连接,意味着运行于两台主机里面的两个进程之间存在一条链接,所以是一对一的。
所以,客户机端一个进程,服务器端一个进程!

24.  RFID 是一种接触式的自动识别技术,它通过射频信号自动识别目标T象并获取相关数据。  错误,非接触式的

25. 【重要】为什么现在的计算机采用二进制,而不是八进制或十六进制?  BCD

A. 二进制表示的数字比较冗长
B. 具有两种稳定状态的元件(如晶体管的导通和截止,继电器的接通和断开,电脉冲电平的高低等)容易找到,用二级制来表示就比较方便
C. 二进制运算规则简单
D. 采用二进制后,仅有的两个符号“1”和“0”正好可以与逻辑命题的两个值“真”和“假”相对应,能够方便地使用逻辑代数这一有力工具来分析和设计计算机的逻辑电路

26. 在下列说法中哪些是正确的?  CD

A. 虚电路与电路交换中的电路没有实质不同
B. 在通信的两站间只能建立一条虚电路
C. 虚电路也有连接建立、数据传输、连接拆除三个阶段
D. 虚电路的各个结点不需要为每个分组做路径选择判断

27.  

假设一个系统包括A到G七个进程,R到W六中资源。资源间的所有权关系,如下:

1、进程A占有资源R,请求资源S

2、进程B不占有任何资源,请求资源T

3、进程C不占任何资源,请求资源S

4、D占有资源U,请求资源S和T

5、E有资源T,请求资源V

6、F有资源W,请求资源S

7、G有资源V,需要资源U

下列说法正确的是:AC

A. 进程D、E、G被死锁
B. 进程D、E、C被死锁
C. 进程A、C、F没有被死锁
D. 进程A、D、E被死锁

画出资源分配图:资源指向进程,代表进程占有此资源;进程指向资源,代表进程请求该资源。

可以看到将DEG但单独拎出来发现:其构成一个环路,则死锁!(因为箭头是有向的,所以如果形成一个环,说明这个环中的所有进程都被死锁。)

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值