- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
冒泡排序
1、冒泡排序基本思想
将n个数据看作竖向排列的一组数据,每趟排序自下而上对每对相邻数据进行比较,若次序不符合要求就进行交换,每趟排序结束时都能使排序范围内关键字最小的记录像一个气泡一样升到上端的对应位置,整个排序过程共进行n-1趟,依次将关键字最小、次小……的各个数据冒到表的第一个、第二个……位置上。
★用冒泡排序对n个数据进行排序时,共需进行n-1趟排序,比较的总次数为
例1:对10个数据进行冒泡排序,需要比较的次数是()
A.90B.110C.45D.55
例2:篮球联赛中,有5个班级的比赛积分依次为14,11,13,8,9。若采用冒泡排序算法对其进行从小到大排序,则完成第二遍时的结果是()
A.8,11,13,14,9B.8,9,13,14,11C.8,9,14,11,13D.14,13,11,9,8
例3:某书店在5所学校流动售书量(单位:本)分别是88,110,48,64,35。采用冒泡排序法对其进行排序,若完成第一遍时的结果是:35,88,110,48,64,则完成第二遍时的结果是()
A.35,88,110,48,64B.35,48,88,64,110
C.35,48,88,110,64D.35,48,64,88,110
例4:某市组织了一次我心目中最喜爱的球队的评比活动,6个球队网上投票数为201、287、501、189、397、295,若采用冒泡排序算法对其进行从大到小排序,则第三遍加工后的结果是()
原数据
201
287
501
189
397
295
第一遍
501
201
287
397
189
295
第二遍
501
397
201
287
295
189
第三遍
A.501397295287201189B.501397201287295189
C.501397295201189287D.501397295201287189
2、冒泡排序程序实现
说明:以存放d数组n个数据升序为例的程序如下:
教材实例
冒泡变式
Fori=1Ton-1
Forj=nToi+1Step-1
Ifd(j)<d(j-1)Then
temp=d(j):d(j)=d(j-1):d(j-1)=temp
EndIf
Nextj
Nexti
’降序只需将d(j)<d(j-1)改为Ifd(j)>d(j-1)即可
Fori=1Ton-1
Forj=1Ton-i
Ifd(j)>d(j+1)Then
d(j)=d(j)+d(j+1):d(j+1)=d(j)-d(j+1)
d(j)=d(j)-d(j+1)
EndIf
Nextj
Nexti
★temp=d(j):d(j)=d(j-1):d(j-1)=temp与
d(j)=d(j)+d(j+1):d(j+1)=d(j)-d(j+1):d(j)=d(j)-d(j+1)为两种不同的交换数组中数据的方式
例1:有如下程序段:
s=“”
Fori=1To3
Forj=7Toi+1Step-1
Ifa(j)<a(j-1)Then
k=a(j):a(j)=a(j-1):a(j-1)=k
EndIf
Nextj
s=s+Str(a(i))
Nexti
Text1.Text=s
数组元素a(1)到a(7)的数据依次为“3,9,1,5,8,6,2”,经过该程序段“加工”后,文本框Text1中显示的内容是()
A.123B.986
C.391D.862
例3:已知字符串a(1)到a(6)的原始数据为“118”,
“36”,“98”,“15”,“88”,“2”,为了对该数组进行排序操作,小吴编写了以下VB程序:
Fori=1to3
Forj=6toi+1step-1
Ifa(j)<a(j-1)Then
原创力文档


文档评论(0)