重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
找答案首页 > 全部分类 > 大学本科
搜题
网友您好, 请在下方输入框内输入要搜索的题目:
搜题
题目内容 (请给出正确答案)
[主观题]

阅读下列函数说明和C代码,回答下面问题。[说明] 冒泡排序算法的基本思想是:对于无序序列()处的字句写在的对应栏内。

答案
(1)j=i+1;(2)j>0﹠ ﹠R[j].key<R[j-1].key(3)R[j]=R[j-1]; //反序则交换数据(4)j--;(或j=j-1;) (1)j=i+1;(2)j>0﹠ ﹠R[j].key<R[j-1].key(3)R[j]=R[j-1]; //反序,则交换数据(4)j--;(或j=j-1;)
更多“阅读下列函数说明和C代码,回答下面问题。[说明] 冒泡排序算法的基本思想是:对于无序序列()处的字句写在的对应栏内。”相关的问题

第1题

阅读下列函数说明和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)处的字句写在的对应栏内。

点击查看答案

第2题

请完成下列Java程序。程序的功能是对数组进行冒泡排序。冒泡排序算法的基本思路是把当前数据序列中的各相邻数据两两比较,发现任何一对数据间不符合升序或降序关系则立即调换它们的顺序,从而保证相邻数据间符合升序或降序的关系。本题是进行升序排列。例如数组a[]={30,1,-9,70,25}则排序后为{-9 1 25 30 70}。

注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。

源程序文件代码清单如下:

public class BubbleSort

{

public static void main(String args[])

{

int i,j;

int a[]={30,1,-9,70,25};

int n=a.length;

System.out.print("排序前数组为:");

for(i=0;i<n;i++)

System.out.print(a[i]+" ");

System.out.println();

for(i=1;i<n;i++)

for(j=0;______j++)

if(a[j]>a[j+1])

{

int temp=a[j];

______;

a[j+1]=temp;

}

System.out.print("排序后数组为:");

for(i=0;i<n;i++)

System.out.print(a[i]+" ");

}

}

点击查看答案

第3题

下列排序算法中,平均效率最低的排序算法是()。

A、插入排序

B、选择排序

C、冒泡排序

D、快速排序

点击查看答案

第4题

使用VC++6.0打开考生文件夹下的源程序文件2.cpp。阅读下列函数说明和代码,完成空出部分的程序。实现函数sort(intA[],intn),用冒泡法对数组数据进行排序。所谓冒泡法,就是每次把相邻的两个数交换,较大的数交换到后面。这样下标从0到n-1的数与其后面相邻的数交换,可以把最大的数交换到数组的末端。进行n次下标从0到n-1的交换,则数组变成有序的,并且按由大到小排序。 注意:不能修改和删除程序的其他部分,也不能修改程序的结构。 试题程序: include<iostream.h> defineN10 voidsort(intA[N],intn) { } intmain { intA[N]={1,50,17,69,87,42,90,-6,O,-11}; sort(A,10); for(inti=0;i<sizeof(A)/sizeof(int);i++) { cout<<A[i]<<; } cout<<endl; return0; }

点击查看答案

第5题

下面排序算法中,平均排序速度最快的是( )。

A.冒泡排序法

B.选择排序法

C.交换排序法

D.堆排序法

点击查看答案

第6题

下面排序算法中,平均排序速度最快的是( )。

A.冒泡排序法

B.选择排序法

C.交换排序法

D.堆排序法

点击查看答案

第7题

下面排序算法中,平均排序速度最快的是( )。

A.冒泡排序法

B.选择排序法

C.交换排序法

D.堆排序法

点击查看答案

第8题

下面排序算法中,平均排序速度最快的是( )。

A.冒泡排序法

B.选择排序法

C.交换排序法

D.堆排序法

点击查看答案

第9题

冒泡排序算法的时间复杂度是什么?

点击查看答案
下载上学吧APP
客服
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
选择优惠券
优惠券
请选择
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)
订单号:
遇到问题请联系在线客服
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

- 微信扫码关注上学吧 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注上学吧 -
请用微信扫码测试
选择优惠券
确认选择
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,如果您知道正确答案,欢迎您来纠错

上学吧找答案