首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列说明、流程图和算法进行填空。 下面的流程图用N-S盒图形式描述了数组A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于A[i],
阅读下列说明、流程图和算法进行填空。 下面的流程图用N-S盒图形式描述了数组A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于A[i],
admin
2010-02-13
40
问题
阅读下列说明、流程图和算法进行填空。
下面的流程图用N-S盒图形式描述了数组A中的元素被划分的过程。其划分方法是:以数组中的第一个元素作为基准数,将小于基准数的元素向低下标端移动,而大于基准数的元素向高下标端移动。当划分结束时,基准数定位于A
,并且数组中下标小于i的元素的值均小于基准数,下标大于i的元素的值均大于基准数。设数组A的下界为low,上界为high,数组中的元素互不相同。例如,对数组(4,2,8,3,6),以4为基准数的划分过程如图8-34所示。
算法说明:将上述划分的思想进一步用于被划分出的数组的两部分,就可以对整个数组实现递增排序。设函数int p(int A[],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
解析
本题的快速排序思想是:首先,以待排序序列的第1个元素为基准,将序列中所有小于基准元素的元素排到基准元素的一边,将序列中所有大于基准元素的元素排到基准的另一边。具体放在哪一边,要根据排序的升降而定。这样,就以基准元素为界,将原序列划分成了两个部分,然后再分别对这两个部分递归进行快速排序,直到无法再划分为止。这样,整个序列就被排序了。
题目中已经给出了快速排序的划分算法,我们要做的就是将划分算法的流程图和
快速排序的递归函数补充完整。
先看来流程图,pivot←A[low]就是将数组A的第1个元素赋给pivot,作为基准元素。然后,分别将数组的下界和上界赋给i和j(i←low;j←high),我们可以将 i和j理解为分别指向数组首和尾的两个指针。注意,其中的i指向的位置是基准元素所在位置。接下来是一个循环,循环条件为i<j。
在循环体中,首先从后往前寻找比基准元素小的元素,这是通过一个子循环来完成的。循环条件i<j&&A[j]>pivot的意思是,如果j所指的元素比基准元素大,并且j还在i的后面的话,我们应该把j往前移动1位,所以第1空应该填j--或其他等价形式。如果找到比基准元素小的元素或者j已经移动到i的位置了,则循环结束。下面的语句A
←A[j]刚就是将找到的元素移动到i所指位置。注意,现在可以将j所指位置看作是基准元素的位置,但是可以暂时不用把基准元素赋给A[j]。接下来的子循环跟前面的很类似,循环条件是i<j&&A
<pivot,如果i所指元素小于基准元素,且i并没有超过j,那么就应该将i往前移动1位,所以第2空应该填i++或其他等价的形式。直到i>=j(i和j已经重合,所有元素都遍历完了),或者A
>=pivot(在基准元素位置j的左边找到比基准元素大的元素了),则该子循环结束。然后执行A[j]←A
,将找到的元素跟基准元素交换位置,不过基准元素可以暂时不用赋给A
,因为它还要跟其他元素交换位置。
如果子循环不是因为i>=j结束的,那么外循环就会继续。直到所有大于基准元素的元素都被排到基准元素后面,小于基准元素的元素都被排到基准元素前面。外循环结束时,i和j一定是重合的,现在可以把基准元素写入它们所指的位置中去了。所以,第3空可以填A
←pivot或A[j]←pivot。
现在来看快速排序的递归函数sort(),在函数中首先判断下界L是否小于上界H,这一点很重要,因为它是递归函数回溯的条件。如果L<H,则表示需排序的元素个数不为0。在if子句中,首先调用前面分析过的划分算法p()函数,将数组A的 L~H范围进行一次划分,然后递归调用了两次sort()。很显然,这两次应该分别对划分出的前半部分和后半部分分别排序。所以,第(4)、(5)空应该分别填A,L, k-1和A,k+1,H,或者把它们的位置交换也可以。
转载请注明原文地址:https://jikaoti.com/ti/x0W7FFFM
本试题收录于:
程序员上午基础知识考试题库软考初级分类
0
程序员上午基础知识考试
软考初级
相关试题推荐
在计算机局域网协议集中,数据链路层又可分为介质访问控制子层和(43); LAN参考模型中服务访问点SAP的作用是(44);局域网中数据传输的误码率较低,一般约在(45);在LAN的介质访问方式中,争用属于(46);以太网的介质访问控制方式与CSMA相比较,
计算机通过电话网拨号方式上网时,异步传输的字符同步,下列选项(37)的说法是正确的:采用数据位为8位的异步起止方式传输数据时,其效率最高为(38),高级数据链路控制规程(HDLC)是(39)提出的标准;HDLC帧同步标志是(40);HDLC协议为保证帧同步
UDP中用户数据报首部字段有(43)字节,TCP中的数据报首部字段有(44)字节。
某单位为了扩展局域网新买了一个有3个端口的网桥,扩展后网桥的连接如图10-2所示,端口1与网段A相连,端口2与网段B相连,端口3与网段C相连,网段A中的主机H1的MAC地址是MAC1,网段C中的主机H2的MAC地址是MAC2。则该网桥在工作的过程中,下列说
计算机中声音、图形、图像信息都是以文件的形式存储的,它们的文件格式有许多种,可以通过扩展名来识别,常见的文件扩展名有:①BMP ②AIF ③JPG ④WAV ⑤GIF ⑥VOC其中,表示声音文件的有(9),表示图形、
现采用4级流水线结构分别完成一条指令的取指、指令译码和取数、运算以及送回运算结果4个基本操作,每步的操作时间依次为60ns、100ns、50ns和70ns。该流水线的操作周期应为(50)ns。若有一小段程序需要用20条基本指令完成(这些指令完全适合于在流水
电子邮件客户端应用程序向邮件服务器发送邮件时使用(40)协议。下面关于 FTP叙述错误的是(41)。因特网上最重要、最基本的服务是(42)。下面描述的不是Internet提供的服务的选项是(43)。
若进程P1正在运行,操作系统强行撤下P1进程所占用的CPU,让具有更高优先级的进程P2运行,这种调度方式称为(7),此时P1进程处于(8)状态。(9)将CPU的时间分成若干个时间片轮流地为各个用户服务。
IEEE-754标准规定:单精度浮点数的最高位为符号位,后面跟8位经偏移的阶码(移码),偏移量为+127,尾数用原码表示,且把尾数规格化为1.xxx,…x(x为0或1),并将1去掉,尾数用23位表示。根据该标准,十进制数+178.125的规格化表示形式为(
在多媒体计算机中,语音和音乐是最基本的功能之一。实现模拟音频数字化的主要过程是(12)、量化和编码。人们通常用8位声卡或16位声卡来区分不同的声卡质量。若量化位是8位,并规定输入信号幅度为0~3V,则每一量化单位约对应(13)mV。声卡需使用计算机的资源,
随机试题
根据《企业破产法》的规定,下列主体中,可以担任管理人的是()。
关于骨盆的构成,下列哪种说法是正确的
A.上下颌突未联合或部分联合B.一侧或两侧的球状突或上颌突未联合或部分联合C.侧腭突和鼻中隔未融合或部分融合D.前腭突与上颌突未能联合或部分联合E.上颌突与侧鼻突未联合形成腭裂
某个体企业主张金柱欲为其62岁的母亲图雅、8岁的女儿张玉以及在其企业工作的员工28岁的司机罗帆投保意外伤害险。为此,他向保险公司详细询问了有关意外伤害保险的具体条件,并与保险公司签订了3份人身保险合同。请回答下列相关问题:有关上述合同履行过程中出现了下
立法上确定空间权的意义有()。
钢筋混凝土构件中,钢筋和混凝土两种材料能结合在一起共同工作的条件。以下叙述正确的是:Ⅰ.两者之间有很强的黏结力Ⅱ.混凝土能保护钢筋不锈蚀Ⅲ.两者在正常使用温度下线膨胀系数相近Ⅳ.两者受拉或受压的弹性模量相近
阅读下面短文,回答下列问题。2001年3月15日,北京大学教授于希贤来到抚仙湖,并组织考察组乘坐潜水器潜入湖底。他们利用声纳技术在水深15m处发现第一个目标。有一堵石墙,石料大小不一,每个石块上至少有一面到两面是平整的,带有人工加工过的痕迹。从声纳
若有以下程序#includemain(){inta=0,b=0,c=0,d;c=(a+=b,,b+=a);/*第4行*/d=c::/*第5行*/:/*第6行*/printf
Theoldcouplenowstillgrievefortheirbelovedson,30yearsafterhisdeath.
A、DonwellSchool.B、EnderbyHigh.C、CarltonAbbey.D、EnderbyComprehensive.C选项是关于学校的名词。题目问的是哪所学校考上大学的学生比例最高。对话中女士问每年有多少人进入大学,男士
最新回复
(
0
)