首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
下面是快速排序的伪代码,请填补其中的空缺;伪代码中的主要变量说明如下。 A:待排序数组 p,r: 数组元素下标,从p到r q: 划分的位置 x:枢轴元素 i:整型变量,用于描述数组下标。下标小于或等于i的元素的值小于或等于枢轴
下面是快速排序的伪代码,请填补其中的空缺;伪代码中的主要变量说明如下。 A:待排序数组 p,r: 数组元素下标,从p到r q: 划分的位置 x:枢轴元素 i:整型变量,用于描述数组下标。下标小于或等于i的元素的值小于或等于枢轴
admin
2009-01-10
84
问题
下面是快速排序的伪代码,请填补其中的空缺;伪代码中的主要变量说明如下。
A:待排序数组
p,r: 数组元素下标,从p到r
q: 划分的位置
x:枢轴元素
i:整型变量,用于描述数组下标。下标小于或等于i的元素的值小于或等于枢轴元素的值
j:循环控制变量,表示数组元素下标
QUICKSORT (A,p,r){
if (p <r){
q=PARTITION(A,p,r) ;
QUICKSORT(A,p,q-1);
QUICKSORT(A,q+1,r);
}
}
PARTITION(A,p,r){
x=A[r];i=p-1;
for(j=p;j≤r-1;j++){
if (A[j]≤x){
i=i+1;
交换A
和A[j]
}
}
交(1)和(2)//注:空(1)和空(2)答案可互换,但两空全部答对方可得分 return (3)
}
(1)待排序数组是否能被较均匀地划分对快速排序的性能有重要影响,因此枢轴元素的选取非常重要。有人提出从待排序的数组元素中随机地取出一个元素作为枢轴元素,下面是随机化快速排序划分的伪代码——利用原有的快速排序的划分操作,请填充其中的空缺处。其中,RANDOM(i,j)表示随机取i到j之间的一个数,包括i和j。
RANDOMIZED- PARTITION(A,p,r){
i=RANDOM(p,rl);
交换(8)和(9);//注:空(8)和空(9)答案可互换,但两空全部答对方可得分
return PARTITION (A,p,r);
}
(2)随机化快速排序是否能够消除最坏情况的发生?(10)。(是或否)
选项
答案
(8)A[i] (9)A[r] (10)否 注;空(8)和空(9)答案可以互换
解析
本题考查算法的设计与分析技术。
问题1考查快速排序算法的伪代码,快速排序最核心的处理是进行划分,即 PARTITION操作,根据枢轴元素的值,把一个较大的数组分成两个较小的子数组,一个子数组的所有元素的值小于等于枢轴元素的值,一个子数组的所有元素的值大于枢轴元素的值,而子数组内的元素不排序。划分时,以最后一个元素为枢轴元素,从左到右依次访问数组的每一个元素,判断其与枢轴元素的大小关系,并进行元素的交换,如图4-1所示:
在问题1给出的伪代码中,当循环结束后,A[p..i]中的值应小于等于枢轴元素值x,而A[i+1..r-1]中的值应大于枢轴元素值x。此时A[i+1)是第一个比A[r]大的元素,因此 A闭与A[i+1]交换,得到划分后的两个子数组。PARTITION操作返回枢轴元素的位置,因此返回值为i+1。
问题2考查的是快速排序算法的时间复杂度分析。当每次能作均匀划分时,算法为最佳情况,此时时间复杂度可以通过计算递归式T(n)=2T(n/2)+O(n),得到时间复杂度为O(nlgn):当每次为极端不均匀划分时,即长度为n的数组划分后一个子数组为n-1,一个为0,算法为最坏情况,此时时间复杂度可以通过计算递归式T(n)=T(n-1)+O(n),得到时间复杂度为O(n
2
);平均情况的分析较为复杂,我们可以假设数组每次划分为 9/10:1/10,此时时间复杂度可以通过计算递归式T(n)=T(9/10)+T(1/10)+O(n),得到时间复杂度为O(nlgn),因此在平均情况下快速排序仍然有较好的性能,时间复杂度为 O(nlgn)。当所有的n个元素具有相同的值时,可以认为数组已经有序,此时每次都划分为长度为n-1和0的两个子数组,属于最坏情况。
问题3中,由于随机化的快速排序的划分调用了传统的快速排序算法的PARTITION操作,而传统的划分每次以数组的最后一个元素作为枢轴元素,因此,随机化的划分操作中每次先随机获得一个元素,将其与最后一个元素交换。随机化的快速排序消除了输入数据的不同排列对算法性能的影响,降低了极端不均匀划分的概率,但不能保证不会导致最坏情况的发生。
转载请注明原文地址:https://kaotiyun.com/show/W5DZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
某供应商数据库中的供应关系为SPJ(供应商号,零件号,工担号,数量),如下命令查询某工程至少用了3家供应商(包含3家)供应的零件的平均数量,并按工程号的降序排列。SELECT工程号,(14)FROMSPJGROUPBY工程号(15)
某系统的进程状态转换如下图所示。图中1、2、3和4分别表示引起状态转换时的不同原因。原因4是由于(9);一个进程状态转换会引起另一个进程状态转换的是(10)。
风险分析在软件项目开发中具有重要作用,包括风险识别、风险预测、风险评估和风险控制等。“建立风险条目检查表”是(18)时的活动,“描述风险的结果”是(19)时的活动。
性能测试过程中需要对数据库服务器的资源使用进行监控,______不属于应该监控的指标。A.CPU占用率B.可用内存数C.点击率D.缓存命中率
为验证某呼叫中心是否能够承受大量呼叫信息同时呼入并得到正确处理,测试工程师一般采用______测试工具。A.负载压力B.代码C.网络仿真D.故障诊断
若有关系R(A,B,C,D)和S(C,D,E),则与表达式π3,4,7(σ4<5(R×S))等价的SQL语句如下:SELECT(17)FROM(18)WHERE(19);(18)
如果在程序中的多个地方需要使用同一个常数,那么最好将其定义为一个符号常量,这样______。
已知函数f()、g()的定义如下所示,执行表达式“x=f(5)”的运算时,若函数调用g(a)是引用调用(callbyreference)方式,则执行“x:f(5)”后x的值为(7);若函数调用g(a)是值调用(callbyvalue)方式,
堆是一种数据结构,分为大顶堆和小顶堆两种类型。大(小)顶堆要求父元素大于等于(小于等于)其左右孩子元素。则___________(41)是一个大项堆结构,该堆结构用二叉树表示,其高度(或层数)为___________(42)。(41)
随机试题
由一般单元的单元刚度方程:有惟一解,并且为一平衡力系。()
男性,50岁,患慢性支气管炎多年,近两年出现走路时气急,曾胸透发现肺纹理增强紊乱,两肺透光度增加,膈肌位于第11后肋。一天前在用力时突感呼吸困难加重,右胸刺痛,最可能的诊断是
某患者,女性,63岁,全口牙列缺失,要求修复若患者上颌前部牙槽嵴被一种松软可移动的软组织所覆盖,应怎么处理
建筑物内的安全出口包括疏散楼梯和直通室外的疏散门。下列关于安全出口设置的要求中,正确的有()。
工作成果的分布对组织的人力资源策略的影响说法正确的有()。
我家窗外,不见绿荫,是高楼包围中遗留的一片灰扑扑的低矮的瓦房,使我得以望见一片天空,望见它的晴朗阴沉,星月风雨。当然,也得时常紧闭窗户,看那几根烟囱中逃窜出来的煤烟如何张扬肆虐。奇怪的是。燕子就在这样的环境中飞翔而至,像老朋友似的呢喃问候。一个暴雨来临前的
我喜欢这些走在路上______的姑娘,她们热爱大自然,懂得欣赏山水之美,真诚地听从内心世界的______。她们敢于抛下物质的______,孤身上路,面对世界,吃得起苦,经得起风雨。填入横线部分最恰当的一项是()。
2013年9月27日,国务院批准《中国(上海)自由贸易试验区总体方案》,9月29日,“中国(上海)自由贸易试验区”和“中国(上海)自由贸易试验区管委会”挂牌,这标志着中国(上海)自由贸易试验区正式启动运作。自贸区建设将促进政府职能转变,积极探索管理模式创新
生活教育
求矩阵A=的实特征值及对应的特征向量.
最新回复
(
0
)