冒泡排序算法及程序实现PPT课件.pptVIP

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
由于每一趟加工都是将本趟最小(大)的数元素像气泡一样浮至本趟的顶端位置,所以称作冒泡排序。但冒泡也有变式,即将数组元素进行两两比较,若相邻两个元素中的数据不符合排序,就交换位置。 某数组c共由4个元素构成,每个元素的值如下表所示: 数组元素 c(1) c(2) c(3) c(4) 值 23 38 30 15 第1页/共28页 采用冒泡排序思想进行升序排序,从最下面的一个元素起,自下而上的比较相邻两个元素中的数据,整个排序过程如下所示: ①第一趟加工处理过程: 第一趟加工共比较3次,处理完成后,最小的元素15存储在了c(1)中。 第2页/共28页 ②第二趟加工处理过程: 第二趟加工共比较2次,处理完成后,第2个最小的元素23存储在了c(2)中。 第3页/共28页 ③第三趟加工处理过程: 第三趟加工共比较1次,处理完成后,第3个小的元素32存储在了c(3)中。 4个元素共需进行3趟加工处理,总的比较次数为3+2+1=6次。 对n个元素的数组,用冒泡法进行排序时,共需比较n(n-1)/2次。 第4页/共28页 2.冒泡排序算法的程序实现 冒泡排序程序的实现可用双重For循环来实现,外层For循环控制是第几遍加工,内层For循环控制进行排序的数组元素下标的变化范围。由于每趟加工完成后,进行排序的范围会发生变化(每趟减少一个),故内层For循环变量的下界由外层循环变量决定。 第5页/共28页 现有n个数据,分别存放在数组变量a(1 To n)当中,用冒泡排序算法表示结构如下: 第6页/共28页 用冒泡排序算法程序实现的片段如下: For i=1 To n-1 For j=n To i+1 Step -1 If a(j)a(j-1) Then t=a(j):a(j)=a(j-1):a(j-1)=t End If Next j Next i 当外循环变量i取1时,即第1趟加工时,内循环变量j的下界为i+1(值为2),即从a(n)开始自下而上的比较相邻的两个元素中的数,如果下面的数比上面的小,则相互交换,直到a(2)与a(1)的比较为止,这样第1趟加工后将最小的数放到了a(1)中;第2趟加工,内循环变量j的下界为3,直到a(3)和a(2)的比较为止,把最小的数放到了a(2)中;这样,经过n-1趟加工后,就完成了数组从小到大的排序。 第7页/共28页 中间的If语句,完成相邻的两个元素的比较过程,如果下面的数a(j)比上面的数a(j-1)小,则交换a(j)与a(j-1)的值。用语句t=a(j):a(j)=a(j-1):a(j-1)=t来实现。 3.读程序时,判断冒泡排序的结果是从小到大还是从大到小,方法就是分析内循环中的条件判断语句,如果交换数据的条件是前面元素小于后面元素,如a(j)a(j+1)、a(j)a(j-1),则排序结果是从大到小。反之,如果交换数据的条件是前面元素大于后面元素,如a(j)a(j+1)、a(j)a(j-1),则排序结果是从小到大。 第8页/共28页 注意:以下代码也可实现对数组h(共n个元素)进行冒泡排序: For i = 1 To n - 1 For j = i + 1 To n If h(i) h(j) Then t = h(i): h(i) = h(j): h(j) = t End If Next j Next i 第9页/共28页 本节课学习要理解冒泡排序算法的基本思想,能根据冒泡排序的思想,对一组数据进行冒泡排序。掌握冒泡排序算法的程序实现,能根据给出的题目自行编写冒泡程序。考查方式为选择题与填空题。 第10页/共28页 某书店在5所学校流动售书量(单位:本)分别是82、113、46、69、35。采用冒泡排序对其进行排序,若完成第一遍时的结果是35、82、113、46、69,则完成第二遍时的结果是 (  ) A.35、82、113、46、69 B.35、46、82、69、113 C.35、46、82、113、69 D.35、46、69、82、113 C 第11页/共28页 2.下表记录了6个数据的排序过程。分析表中数据可知,该排序采用的算法与排序方式分别为 (  ) 原始数据 63 57 59 42 45 71 第1遍 42 63 57 59 45 71 第2遍 42 45 63 57 59 71 第3遍 42 45 57 63 59 71 … … … … … … … 冒泡排序,降序 选择排序,降序 冒泡排序,升序 选择排序,升序 C 第12页/共28页 3.实现某排序算法的部分VB程序如下: For i = 1 To 4

文档评论(0)

文档爱好者 + 关注
实名认证
文档贡献者

文档爱好者~

1亿VIP精品文档

相关文档