首页 > 外贸类考试
题目内容 (请给出正确答案)
[判断题]

快速排序算法在待排序数据有序时最不利于发挥其长处。()

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“快速排序算法在待排序数据有序时最不利于发挥其长处。()”相关的问题
第1题
以下关于快速排序算法的描述中,错误的是()。在快速排序过程中,需要设立基准元素并划分序列来进行排序。若序列由元素{12,25,30,45,52,67,85}构成,则初始排列为()时,排序效率最高(令序列的第一个元素为基准元素)。

A.快速排序算法是不稳定的排序算法

B.快速排序算法在最坏情况下的时间复杂度为0(nlgn)

C.快速排序算法是一种分治算法

D.当输入数据基本有序时,快速排序算法具有最坏情况下的时间复杂度

点击查看答案
第2题
阅读下列函数说明和C代码,回答下面问题。[说明] 冒泡排序算法的基本思想是:对于无序序列(假设扫描

阅读下列函数说明和C代码,回答下面问题。

[说明]

冒泡排序算法的基本思想是:对于无序序列(假设扫描方向为从前向后,进行升序排列),两两比较相邻数据,若反序则交换,直到没有反序为止。一般情况下,整个冒泡排序需要进行众(1≤k≤n)趟冒泡操作,冒泡排序的结束条件是在某一趟排序过程中没有进行数据交换。若数据初态为正序时,只需1趟扫描,而数据初态为反序时,需进行n-1趟扫描。在冒泡排序中,一趟扫描有可能无数据交换,也有可能有一次或多次数据交换,在传统的冒泡排序算法及近年的一些改进的算法中[2,3],只记录一趟扫描有无数据交换的信息,对数据交换发生的位置信息则不予处理。为了充分利用这一信息,可以在一趟全局扫描中,对每一反序数据对进行局部冒泡排序处理,称之为局部冒泡排序。

局部冒泡排序的基本思想是:对于N个待排序数据组成的序列,在一趟从前向后扫描待排数据序列时,两两比较相邻数据,若反序则对后一个数据作一趟前向的局部冒泡排序,即用冒泡的排序方法把反序对的后一个数据向前排到适合的位置。扫描第—对数据对,若反序,对第2个数据向前冒泡,使前两个数据成为,有序序列;扫描第二对数据对,若反序,对第3个数据向前冒泡,使得前3个数据变成有序序列;……;扫描第i对数据对时,其前i个数据已成有序序列,若第i对数据对反序,则对第i+1个数据向前冒泡,使前i+1个数据成有序序列;……;依次类推,直至处理完第n-1对数据对。当扫描完第n-1对数据对后,N个待排序数据已成了有序序列,此时排序算法结束。该算法只对待排序列作局部的冒泡处理,局部冒泡算法的

名称由此得来。

以下为C语言设计的实现局部冒泡排序策略的算法,根据说明及算法代码回答问题1和问题2。

[变量说明]

define N=100 //排序的数据量

typedef struct{ //排序结点

int key;

info datatype;

......

}node;

node SortData[N]; //待排序的数据组

node类型为待排序的记录(或称结点)。数组SortData[]为待排序记录的全体称为一个文件。key是作为排序依据的字段,称为排序码。datatype是与具体问题有关的数据类型。下面是用C语言实现的排序函数,参数R[]为待排序数组,n是待排序数组的维数,Finish为完成标志。

[算法代码]

void Part-BubbleSort (node R[], int n)

{

int=0 ; //定义向前局部冒泡排序的循环变量

//暂时结点,存放交换数据

node tempnode;

for (int i=0;i<n-1;i++) ;

if (R[i].key>R[i+1].key)

{

(1)

while ((2) )

{

tempnode=R[j] ;

(3)

R[j-1]=tempnode ;

Finish=false ;

(4)

} // end while

} // end if

} // end for

} // end function

阅读下列函数说明和C代码,将应填入(n)处的字句写在的对应栏内。

点击查看答案
第3题
在实现快速排序的非递归算法时,可根据基准元素.将待排序排序码序列划分为两个子序列。若下一趟
首先对较短的子序列进行排序,试编写相应的算法,并说明在此做法下,快速排序所需要的栈的深度为O(log2n),

点击查看答案
第4题
快速排序算法在排序过程中,在待排序数组中确定一个元素为基准元素,根据基准元素把待排序数组划分
成两个部分,前面一部分元素值小于等于基准元素,而后面一部分元素值大于基准元素。然后再分别对前后两个部分进一步进行划分。根据上述描述,快速排序算法采用了 (61) 算法设计策略。已知确定基准元素操作的时间复杂度为,则快速排序算法的最好和最坏情况下的时间复杂度为 (62) 。

A.分治

B.动态规划

C.贪心

D.回溯

点击查看答案
第5题
如果待排序序列中两个元素具有相同的值,在排序前后它们的相互位置发生颠倒,则称该排序算法是不稳定的。(41)是稳定的排序方法,因为这种方法在比较相邻元

A.冒泡排序

B.希尔排序

C.快速排序

D.简单选择排序

点击查看答案
第6题
若待排序的记录数目较少且已按关键字基本有序,则宜采用______排序算法。

A.快速排序

B.插入排序

C.选择排序

D.冒泡排序

点击查看答案
第7题
奇偶交换排序是另一种交换排序。它的第一趟对序列中的所有奇数项i拼描,第二趟对序列中的所有偶
数项i扫描,若A[i]≥Ali+1],则交换它们。第三趟对所有的奇数项扫描,第四趟对所有的偶数项扫描,……,如此反复,直到整个序列全部排好序为止。

(1)这种排序方法结束的条件是什么?

(2)写出奇偶交换排序的算法。

(3)当待排序排序码序列的初始排列是从小到大有序,或从大到小有序时,在奇偶交换排序过程中的排序码比较次数是多少?

点击查看答案
第8题
在内部排序中,通常要对被排序数据进行多次扫描。各种排序方法有不同的排序实施过程和时间复杂性。
对给定的整数数列(541,132,984,746,518,181,946,314,205, 827)进行从小到大的排序时,采用冒泡排序和简单选择排序时,若先选出大元素,则第一次扫描结果分别是(1),采用快速排序(以中间元素518为基准)的第一次扫描结果是(2)。

设被排序的序列有n个元素,冒泡排序和简单选择排序的时间复杂度是(3);快速排序的时间复杂度是(4)。

A.(181,132,314,205,541,518,946,827,746,984)和(541,132,827,746,518,181,946,314,205,984)

B.(132,541,746,518,181,946,314,205,827,984)和(541,132,827,746,518,181,946,314,205,984)

C.(205,132,314,181,518,746,946,984,541,827)和(132,541,746,518,181,946,314,205,827,984)

D.(541,132,984,746,827,181,946,314,205,518)和(132,541,746,518,181,946,314,205,827,984)

点击查看答案
第9题
阅读以下算法说明,根据要求回答问题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:循环控制变量,表示数组元素下标

点击查看答案
第10题
下列排序方法中,排序所花费时间不受数据初始排列特性影响的算法是______。

A.直接插入排序

B.冒泡排序

C.直接选择排序

D.快速排序

点击查看答案
第11题
关于几种排序算法的速度描述,正确的是()。

A.插入排序速度快,适合大规模数据

B.选择排序速度快,适合大规模数据

C.冒泡排序速度快,适合大规模数据

D.快速排序速度快,适合大规模数据

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改