软件评测师:数据结构知识点

一、排序

1、快速排序

例题1:在快速排序算法中,对n个数进行排序,平均情况下时间复杂度为()

        A、O(n)        B、O(n²)        C、O(n\log_{2}n)      D、O(n^{1.3})

试题解析:

二、图

1、活动图

例题1:某软件项目的活动图如下图所示,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示活动的持续时间(天),则活动D-H的松他时间为()天

(A) 1                    (B) 2                   (C) 3                   (D) 0            

 试题解析:

项目的最短完成时间就是总工期,也就是求关键路径上活动的总时长,关键路径就是所有路径中最长的一条,经过计算得出关键路径为A-B-D-H-I,工期为21天。故第问正确答案为C。松弛时间又称为浮动时间,自由时间等,是指在不影影响整个工期的前提下,完成该任务有多少机动余地,也就是说该活动最晚可以推迟多长时间开始而不会耽误项目的工期。关键路径上所有活动的松他时间是0,由于活动D-H在关键路径上,所以其松他时间为0,故第二问正确
答案为D

例题2:下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,则完成该项目的最少时间为(问题1)天。活动E-H的松他时间为 (问题2)天

问题1选项:(A) 17                    (B) 19                   (C) 20                   (D) 22 

问题2选项:(A) 3                      (B) 4                     (C) 5                     (D) 6 

试题解析:

最少时间就是求项目的关键路径,即所有路径中最长的一条,在该图中有两条路径,分别为ABCEFIKL和ABDGIKL,共计22天。故第一问正确答案为D;第二问其实是计算E->H的松他时间,即在不影响项目进度的前提下,可推迟开始的时间。本题中E->H在所在路径上的工期是2+3+2+4+6=17天,所以松他时间为22-17=5天;故第二问正确答案为C

总结:

关键路径上的活动松弛时间都为0

其他路径上的活动的松弛时间=关键路径时间-该路径完成需要的时间。

三、树

1、二叉树

(1)二叉树的特点:

        a.二叉树的结点的最大度为2

        b.叶子结点称为终端结点,度为零的结点

        c.二叉树中结点的子树要区分左子树和右子树,即使在结点只有一个棵子树的情况下,也要明确指出孩子树是左子树还是右子树。

(2)二叉树的性质:

        对于任何一颗二叉树,若终端结点(叶子)数为n_{0},度为2的结点数为n_{2},则 n_{0} = n_{2} +1

四、校验码

1、海明码(Hamming Code):

是由贝尔实验室的Richard Hamming设计的,它也是利用奇偶性来检错和纠错的校验方法。海明码的构成方法是在数据位之间的确定位置上插入k个校验位,通过扩大码距来实现检错和纠错。

        例题:已知数据信息为 16位,最少应附加( )位校验位,以实现海明码纠错。  

        A、3

        B、4

        C、5

        D、6

答案:C

答案解析:

根据公式 2的k次方 ≥ n+k+1 , n=16 则 K=5

2、寄偶校验码:

只能发现错误,不能矫正错误。采用的是模2运算

3、循环冗余校验码(CRC):

利用生成多项式为k个数据位产生r个校验位来进行编码,其编码长度为k+r。在求CRC编码时,采用的是模2运算。

4、加密和解密

(1)对称加密:对称加密采用了对称密码编码技术,其特点是文件加密和解密使用相同的密钥,这种方法在密码学中称为对称加密算法。常用的对称加密算法有如下几种:DES、三重DES、RC-5、IDEA和AES

(2)非对称加密:

五、数组

        例题1:设数组a[0..n-1,0..m-1](n>1,m>1)中的元素以行为主序存放,每个元素占用4个存储单元,则数组元素a[i,j](0\leqi<n,0\leqj<m)的存储位置相对于数组空间首地址的偏移量为()

(A) (j*m+i)*4               (B) (i*m+j)*4                 (C) (j*n+i) *4                 (D) (i*n+j)*4 

试题解析:

由于a[i,j](0\leqi<n,0\leqj<m)i和j是从0开始的,以行为主序,则a[i,j]前面己经有i行已经排列满,一共
有i*m个元素,在a[i,j]元素所在的行,前有个j个元素,所以a[i,j]前一共有(i*m+j)个元素;每个元素占用4个存储单元,所以a[i,j]相对数组空间首地址的偏移量为(i*m+ j)*4。

六、算法

        算法的特性:有穷性、可行性、有输入和输出

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值