当前位置: 首页icon 51CTO软考 > 软考资讯 >考试科目 >2022年11月软件设计师 上午题之二十一

2022年11月软件设计师 上午题之二十一

作者:mb64e70626def822023-12-11 01:00:14
备考咨询 刷题指导
添加专属学姐
下载资料 2024上半年软考备考资料+考试大纲
下载按钮 下载
引号

摘要:对于【软件设计师】软考考试而言,真题无疑是最重要的学习资料之一。在软考备考过程中,吃透真题、掌握真题所考知识点、熟悉真题的出题思路,对我们提升分数的效果是最明显的,通过对真题的反复练习,还可以查漏补缺。今天,给大家带来【2022年11月软件设计师 上午题】部分真题的详解,一起来看看吧~1、下列排序算法中,占用辅助存储空间最多的是__61___。A、 归并排序 B、 快速

引号
摘要:对于【软件设计师】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2022年11月软件设计师 上午题】部分试题的详解,一起来看看吧~



1、下列排序算法中,占用辅助存储空间最多的是__61___。
A、 归并排序
B、 快速排序
C、 堆排序
D、 冒泡排序

答案:A
答题解析:

两路归并排序的核心操作是将一维数组中前后相邻的两个有序序列归并为一个新的有序序列,空间复杂度为O(n)。是几种排序中占用辅助存储空间最多的。

快速排序空间复杂度为O(logn),堆排序和冒泡排序的空间复杂度为O(1)。




2、折半查找在有序数组A中查找特定的记录K:通过比较K和数组中的中间元素 A[mid]进行,如果相等,则算法结束;如果K小于A[mid],则对数组的前半部分进行折半查找:否则对数组的后半部分进行折半查找。根据上述描述,折半查找算法采用了  (62)  算法设计策略。对有序数组(3,14,27,39,42,55,70,85,93,98),成功查找和失败查所需要的平均比较次数分别是  (63)   (假设查找每个元素的概率是相同的)。
A、 分治
B、 动态规划
C、 贪心
D、 回溯

答案:A
答题解析:

折半查找算法是一种分治法。

把数组构造成一棵二叉查找树如下图。

image.png

成功查找的平均比较次数计算:找到42需要1次;找到14、85需要2次;找到3、27、55、93需要3次;找到39、70、98需要4次。所以总数为1+2*2+4*3+3*4=29,平均次数为29/10。

失败查找则相当于最后落到空的子树上,这棵10个结点的二叉树一共有11个空的子树。到达这11棵空子树走过的路径长度总数为5*3+6*4=39,平均次数为39/11。




3、折半查找在有序数组A中查找特定的记录K:通过比较K和数组中的中间元素 A[mid]进行,如果相等,则算法结束;如果K小于A[mid],则对数组的前半部分进行折半查找:否则对数组的后半部分进行折半查找。根据上述描述,折半查找算法采用了  (62)  算法设计策略。对有序数组(3,14,27,39,42,55,70,85,93,98),成功查找和失败查所需要的平均比较次数分别是  (63)   (假设查找每个元素的概率是相同的)。
A、 29/10和29/11
B、 30/10和30/11
C、 29/10 和39/11
D、 30/10和40/11

答案:C
答题解析:

折半查找算法是一种分治法。

把数组构造成一棵二叉查找树如下图。

image.png

成功查找的平均比较次数计算:找到42需要1次;找到14、85需要2次;找到3、27、55、93需要3次;找到39、70、98需要4次。所以总数为1+2*2+4*3+3*4=29,平均次数为29/10。

失败查找则相当于最后落到空的子树上,这棵10个结点的二叉树一共有11个空的子树。到达这11棵空子树走过的路径长度总数为5*3+6*4=39,平均次数为39/11。





查看完整试题>>>


代理合作学习群