早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->软考中级 -->

阅读以下算法说明,根据要求回答问题1~问题3。 [说明] 快速排序是一种典型的分治算法。采用快速排序

题目

阅读以下算法说明,根据要求回答问题1~问题3。

[说明]

快速排序是一种典型的分治算法。采用快速排序对数组A[p..r]排序的3个步骤如下。

1.分解:选择一个枢轴(pivot)元素划分数组。将数组A[p..r]划分为两个子数组(可能为空)A[p..q-1]和A[q+1..r],使得A[q]大于等于A[p..q-1]中的每个元素,小于A[q+1..r]中的每个元素。q的值在划分过程中计算。

2.递归求解:通过递归的调用快速排序,对子数组A[p..q-1]和A[q+1..r]分别排序。

3.合并:快速排序在原地排序,故无需合并操作。

下面是快速排序的伪代码,请将空缺处(1)~(3)的内容填写完整。伪代码中的主要变量说明如下。

A:待排序数组

p,r:数组元素下标,从p到r

q:划分的位置

x:枢轴元素

i:整型变量,用于描述数组下标。下标小于或等于i的元素的值,小于或等于枢轴元素的值

j:循环控制变量,表示数组元素下标

参考答案
正确答案:这是一道考查快速排序算法伪代码的分析题。快速排序是对冒泡排序的一种改进其基本思想是:通过一趟排序将要排序的数据分割成独立的两部分其中一部分的所有数据都比另外一部分的所有数据都要小然后再按此方法对这两部分数据分别进行快速排序整个排序过程可以递归进行以此达到整个数据变成有序序列。快速排序最核心的处理是进行划分即PARTITION操作:根据枢轴元素的值把一个较大的数组分成两个较小的子数组一个子数组的所有元素的值小于等于枢轴元素的值一个子数组的所有元素的值大于枢轴元素的值而子数组内的元素不排序。划分时以最后一个元素为枢轴元素从左到右依次访问数组的每一个元素判断其与枢轴元素的大小关系并进行元素的交换如图2-30所示。 在[问题1]所给出的伪代码中当for循环结束后A[p..i]中的值应小于等于枢轴元素值x而A[i+1..r-1]中的值应大于枢轴元素值x。此时A[i+1]是第一个比A[r]大的元素因此A[r]与A[i+1]进行交换得到划分后的两个子数组。PARTITION操作返回枢轴元素的位置因此返回值为i+l。
这是一道考查快速排序算法伪代码的分析题。快速排序是对冒泡排序的一种改进,其基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序最核心的处理是进行划分,即PARTITION操作:根据枢轴元素的值,把一个较大的数组分成两个较小的子数组,一个子数组的所有元素的值小于等于枢轴元素的值,一个子数组的所有元素的值大于枢轴元素的值,而子数组内的元素不排序。划分时,以最后一个元素为枢轴元素,从左到右依次访问数组的每一个元素,判断其与枢轴元素的大小关系,并进行元素的交换,如图2-30所示。 在[问题1]所给出的伪代码中,当for循环结束后,A[p..i]中的值应小于等于枢轴元素值x,而A[i+1..r-1]中的值应大于枢轴元素值x。此时A[i+1]是第一个比A[r]大的元素,因此A[r]与A[i+1]进行交换,得到划分后的两个子数组。PARTITION操作返回枢轴元素的位置,因此返回值为i+l。
看了阅读以下算法说明,根据要求回答...的网友还看了以下:

海洋,海域盐度排序题目:1.将以下几个海域盐度按由大到小的顺序依次排列: 地中海,红海 其他 2020-05-16 …

一道物理排序题以下为一些同学用调节好的天平测量牛奶密度实验中的一些步骤:①测出空烧杯的质量m1;② 物理 2020-06-03 …

请问1至12用不同排序可以有多少个组合.如下举例假设数字是1,2,排序有:1,2;2,1共二组排序 数学 2020-06-11 …

ACCESS表的记录,“英文按字母的大小写ASCII码值排序”这句话有什么错?关于ACCESS表的 其他 2020-07-01 …

求有初中英语排序题的书.哎上次月考10分的排序题只对了4个拉分呀..我连语文排序都不行更不说英语了 语文 2020-07-03 …

英语排序题和填空题,各位能帮我一个忙吗,能帮我从你们的英语练习的书里,出10题英语填空题目,和一题 英语 2020-08-01 …

英语句子排序A.WelcometoTaiyuan.B.I‘mfine,thanks.Andyou?C 英语 2020-11-26 …

排序题。。。。在待排序文件已基本有序的前提下,下列排序方法中效率最高的是()。A)直接插入排序B)直 其他 2020-11-28 …

举行东盟会议时,东盟各国国旗排列顺序是?A按照国土面积排序B按照经济实力排序C按国家英文首字母排序D 英语 2020-12-01 …

直接插入排序+简单选择排序通过两种方法进行排序,以达到整个序列有序[基本要求](1)通过键盘输入关键 其他 2020-12-05 …