2017年11月 软件评测师 上午题之十四
摘要:对于【软件评测师】软考考试而言,真题无疑是最重要的学习资料之一。在软考备考过程中,吃透真题、掌握真题所考知识点、熟悉真题的出题思路,对我们提升分数的效果是最明显的,通过对真题的反复练习,还可以查漏补缺。今天,给大家带来【2017年11月 软件评测师 上午题】部分真题的详解,一起来看看吧~1、给定包含n 个正整数的数组 A 和正整数 x,要判断数组 A 中是否存在两个元素
1、给定包含n 个正整数的数组 A 和正整数 x,要判断数组 A 中是否存在两个元素之和等于 x,先用插入排序算法对数组 A 进行排序,再用以下过程 P 来判断是否存在两个元素之和等于 x。low=1;high=n;while(high>low) if A[low]+A[high]=x return true; else if A[low]+A[high]>x low++; else high--;return false;则过程 P 的时间复杂度为( ),整个算法的时间复杂度为(请作答此空)。
A、 O(n)
B、 O(nlgn)
C、 O(n^2)
D、 O(n^2lgn)
答案:C
答题解析:
本题考查时间复杂度的基本知识。
第一空有一层循环while,遍历判断,所以时间复杂度为n;
第二空如图所示:插入排序的时间复杂为O(n2) ;
故第一空正确答案为A;第二空正确答案为C;
2、高度为n 的完全二叉树最少的结点数为( )。
A、
B、
C、
D、
答案:A
答题解析:
本题考查完全二叉树的基本知识。
完全二叉树:叶节点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。如果一棵具有k个结点的深度为n的二叉树,它的每一个结点都与深度为n的满二叉树中编号为1~k的结点一一对应,这棵二叉树称为完全二叉树。
1层结点个数为 1
2层结点个数为 2 ~ 3
3层结点个数为 4 ~ 7
........
n层结点个数为
所以深度为n的完全二叉树最多有个结点,最少有个结点。
故正确答案为A
3、采用折半查找算法有序表{7,15,18,21,27,36,42,48 ,51,54,60,72}中寻找值为 15 和38,分别需要进行()次元素之间的比较。
A、 3和1
B、 3和2
C、 4和1
D、 4和3
答案:D
答题解析:
本题考查折半查找算法的基础知识。
折半查找:又称二分查找,优点是比较次数少,查找速度快,平均性能好,占用系统内存较少;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
在这道题中,一共有12个数字组成的有序表,首先使用15进行查找,第一次和36进行比较,因为12/2=6,所以要和第6个数字进行比较,结果15比36小,那么接下来和前一个子表进行比较,第二次是和18进行比较,结果还是比18小,类似地,第三次和7进行比较,结果15比7大,最后和15比较,一共查了4次。同样地,38第一次和36比较,结果比36大,第二次和51比较,结果比51小,第三次和42比较,结果还是比42小,那么就没有更小的了,所以比较了3次,结果查无此元素。
故正确答案为D
查看完整试题>>>
软考资料: 2024年软考论文范文> 软考考试核心重点难点汇总> 查看更多>
备考刷题:章节练习+每日一练> 软考历年试题+模拟题>查看更多>