网站大量收购独家精品文档,联系QQ:2885784924

选择冒泡排序.ppt

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
选择冒泡排序

选择排序 将要排序的对象分作两部分,一个是已排序区域,一个是待排序区域,初始已排序区为空,所有数据元素都在待排序区域。每一趟排序取出待排序的数据元素中最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部结束。 即每趟排序都从后端未排序部份选择一个最小值,并放入前端已排序部份的最后一个 例如: 选择排序 排序前:70 80 31 37 10 1 48 60 33 80 [1] 80 31 37 10 70 48 60 33 80 选出最小值1 [1 10] 31 37 80 70 48 60 33 80 选出最小值10 [1 10 31] 37 80 70 48 60 33 80 选出最小值31 [1 10 31 33] 80 70 48 60 37 80 ...... [1 10 31 33 37] 70 48 60 80 80 ...... [1 10 31 33 37 48] 70 60 80 80 ...... [1 10 31 33 37 48 60] 70 80 80 ...... [1 10 31 33 37 48 60 70] 80 80 ...... [1 10 31 33 37 48 60 70 80] 80 ...... 气泡排序 顾名思义,就是排序时,最大的元素会如同气泡一样移至右端,其利用比较相邻元素的方法,将大的元素交换至右端,所以大的元素会不断的往右移动,直到适当的位置为止。 气泡排序 假设有n个数字的数列,要实现从小到大排序。首先将第一个数字和第二个数字进行比较,如果第一个数字比第二个数字大,则将两个数交换,然后比较第二个数和第三个数,以此类推,直至第n-1个数和第n个数进行比较为止。上述过程称作第一趟冒泡排序,这样第一趟结束时第n个数就是所有数列中最大的数。然后进行第二趟排序,方法同第一趟排序,对前n-1个数进行同样的操作,其结果使得第二大的数字安置到了第n-1个数的位置上。以此类推,直到第n-1趟。 气泡排序 初始:77 98 88 93 95 78 82 84 99 67 77 88 93 95 78 82 84 98 67 [99] 77 88 93 78 82 84 95 67 [98 99] 77 88 78 82 84 93 67 [95 98 99] 77 78 82 84 88 67 [93 95 98 99] 77 78 82 84 67 [88 93 95 98 99] 77 78 82 67 [84 88 93 95 98 99] 77 78 67 [82 84 88 93 95 98 99] 77 67 [78 82 84 88 93 95 98 99] 67 [77 78 82 84 88 93 95 98 99] 气泡排序 气泡排序 基本的气泡排序法可以利用旗标的方式稍微减少一些比较的时间,当寻访完阵列后都没有发生任何的交换动作,表示排序已经完成,而无需再进行之后的回圈比较与交换动作,例如: 气泡排序 排序前:95 27 90 49 80 58 6 9 18 50 27 90 49 80 58 6 9 18 50 [95] 95浮出 27 49 80 58 6 9 18 50 [90 95] 90浮出 27 49 58 6 9 18 50 [80 90 95] 80浮出 27 49 6 9 18 50 [58 80 90 95] ...... 27 6 9 18 49 [50 58 80 90 95] ...... 6 9 18 27 [49 50 58 80 90 95] ...... 6 9 18 [27 49 50 58 80 90 95] 由于接下来不会再发生交换动作,排序提早结束 * * for (j = 0; j QueArray.Length; j++) { k = j; //从j的下一个元素起开始比较 for (i = j + 1; i QueArray.Length; i++) { //比较数组元素 if (QueArray[i] QueArray[k]) { k = i; //使k为较小的数的下标 } } if (k != j) { m = QueArr

文档评论(0)

jyf123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6153235235000003

1亿VIP精品文档

相关文档