首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明、流程图和算法,将应填入______处。 [流程图说明] 下面的流程图用N-S盒图形式描述了数组A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,大于基准数的元素向高下标端移动。
阅读下列说明、流程图和算法,将应填入______处。 [流程图说明] 下面的流程图用N-S盒图形式描述了数组A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,大于基准数的元素向高下标端移动。
admin
2007-03-10
63
问题
阅读下列说明、流程图和算法,将应填入______处。
[流程图说明]
下面的流程图用N-S盒图形式描述了数组A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,大于基准数的元素向高下标端移动。当划分结束时,基准数定位于A
,并且数组中下标小于i的元素的值均小于基准数,下标大于i的元素的值均大于基准数。设数组A的下界为low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如下:
[流程图]
[算法说明]
将上述划分的思想进一步用于被划分出的数组的2部分,就可以对整个数组实现递增排序。设函数int p(intA[],int low,int high)实现了上述流程图的划分过程并返回基准数在数组A中的下标。递归函数void sort(int A[],int L,int H)的功能是实现数组A中元素的递增排序。
[算法]
void sort(int A[],int L,int H){
if(L<H){
k=p(A,L,H); /*p()返回基准数所在数组A中的下标 */
sort( (4) ); /*小于基准数的元素排序 */
sort( (5) ); /*大于基准数的元素排序 */
};
}
选项
答案
(1)j-- (2)i++ (3)A[i]←pivot或A[j]←pivot (4)A,L,k-1 (5)A,k+1,H
解析
题目考查快速排序算法。
快速排序采用了一种分治的策略,通常称为分治法。其基本思想是:将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。
快速排序的具体过程为:
第一步,在待排序的n个记录中任取一个记录,以该记录的排序码为基准,将所有记录分成2组,第一组各记录的排序码都小于等于该排序码,第二组各记录的排序码都大于该排序码,并把该记录排在这2组中间,这个过程称为一次划分。
第二步,采用同样的方法,对划分出来的2组元素分别进行快速排序,直到所有记录都排到相应的位置为止。
在进行一次划分时,若选定以第一个元素为基准,就可将第一个元素备份在变量 pivot中,如图中的第①步所示。如此以来,基准元素在数组中占据的位置就空闲出来了,因此下一步就从后向前扫描,如图中的第②步所示,找到一个比基准元素小的元素时为止,将其前移,如图中的第③步所示。然后再从前向后扫描,如图中的第④步所示,找到一个比基准元素大的元素时为止,将其后移,如图中的第⑤步所示。这样,从后向前扫描和从前向后扫描交替进行,直到扫描到同一个位置为止,如图中的第⑥步所示。
由题目中给出的流程图可知,以第一个元素作为基准数,并将A[loW]备份至pivot,i用于从前向后扫描的位置指示器,其初值为low,j用于从后往前扫描的位置指示器,其初值为high。当i<j时进行循环:
(1)从后向前扫描数组A,在i<j的情况下,如果被扫描的元素A[j]>pivot,就继续向前扫描(j--),如果被扫描的元素A[j]<pivot就停止扫描,并将此元素的值赋给目前空闲着的A
;
(2)这时,再从前向后扫描,在i<j的情况下,如果被扫描的元素A[j]<pivot,就继续向后扫描(i++);如果被扫描的元素A[j]>pivot就停止扫描,并将此元素的值赋给目前空闲着的A[j];
(3)这时,又接第(1)步,直到i≥j时退出循环。退出循环时,将pivot赋给当前的A
(A
←pivot)。
递归函数的目的是执行一系列调用,直到到达某一点时递归终止。为了保证递归函数正常执行,应该遵守下面的规则:
(1)每当一个递归函数被调用时,程序首先应该检查一些基本的条件是否满足,例如,某个参数的值等于零,如果是这种情形,函数应停止递归。
(2)每次当函数被递归调用时,传递给函数一个或多个参数,应该以某种方式变得“更简单”,即这些参数应该逐渐靠近上述基本条件。例如,一个正整数在每次递归调用时会逐渐变小,以至最终其值到达零。
本题中,递归函数sort(int A[],int L,int H)有3个参数,分别表示数组A及其下界和上界。根据流程图可知,这里的L相当于流程图中的i,这里的H相当于流程图中的j。因为p()返回基准数所在数组A中的下标,也就是流程图中最后的“A
←pivot”中的i。
根据快速排序算法,在第一趟排序后找出了基准数所在数组A中的下标,然后以该基准数为界(基准数在数组中的下标为k),把数组A分成2组,分别是A[L,...,k-1)和 A[k+1,...,H],最后对这2组中的元素再使用同样的方法进行快速排序。
转载请注明原文地址:https://kaotiyun.com/show/czjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
某企业信息处理技术员小李的工作任务是每月根据以前的销售数据预测下月的销售额。几个月来,小李曾采用了A~D四种数学模型来做预测,而且过后又对预测值与实际值进行了比较。以下四图分别标记了各个模型几个月来记录的(预测值,实际值)诸点。综合起来看,模型______
在Excel2007中,设单元格A1、B1、C1、A2、B2、C2中的值分别为1、3、5、7、9、11,若在单元格D1中输入函数“=MIN(A1:C2)”,按回车键后,则D1单元格中的值为__________。
下图是某工程A~E五个作业的进度计划。按照该计划,到5月31日检查时,已完成作业数、已经开始但尚未完成的作业数以及尚未开始的作业数应分别为()。
Excel中,快捷功能按钮的功能是(51)。
新建一个Word文档,编辑结束后,执行“文件”菜单中的“保存”命令,则______。
信息系统设计方案中的操作界面部分,特别是输入界面设计方案需要征求信息处理技术员的意见。在如下设计理念中,(66)是不正确的。
对某地区家庭人数的抽样调查统计结果如下表:根据此表,该地区每个家庭的平均人数大致为(28)。
______是Excel工作簿的最小组成单位。
为了提高磁盘存取效率,人们常每隔一段时间进行磁盘碎片整理。所谓磁盘碎片是指磁盘使用一段时间后,(20)。
随机试题
A.原发性腹膜炎B.盆腔脓肿C.继发性腹膜炎D.出血性腹膜炎E.慢性腹膜炎全腹压痛和反跳痛腹肌紧张腹腔穿刺脓液稠厚,有粪臭。提示
该企业的资产利润率为()。股东权益报酬率又称为净值报酬率,指普通股投资者获得的投资报酬率。该企业年度所有者权益年初数为793365元,年末数为814050元。则股东权益报酬率是()。
如果由采购人负责设备安装调试,供货人的现场服务内容可能包括()。
运用财务计算器计算,客户今年40岁,现有资产15万,月投资额为2000元投资于年报酬率为6%的某基金,希望可以尽快累计100万资产退休,照此计算,该客户()可以退休
采用收益法估算目标企业的价值,以()为出发点。
阅读下面的材料,根据要求作文。梦想是什么?在卖火柴的小女孩眼里,梦想是飘香的烤鹅,是奶奶温暖的双臂。在“千手观音"邰丽华的眼里,梦想是聋人可以“听”得到,盲人可以“看”得到,肢残朋友可以“行走”。在杂交水稻之父袁隆平的眼里,梦想是杂交水稻的稻谷像葡萄一样
在制定政策前应就现实条件进行调查,以尽量避免执行时遇到问题.这种做法是遵循了政策制定的()原则。
在Excel软件的常用函数中,()的功能是对符合条件的参数求和。
(2001年)设y=f(x)在(一1,1)内具有二阶连续导数且f"(x)≠0,试证:
(66)Astateuniversitypresidentwasarrestedtodayandchargedwithimpersonateapoliceofficerbecame,theauthoritiessay,
最新回复
(
0
)