## 冒泡排序和选择排序详解--举例-

冒泡排序和选择排序详解

我们先看一下图解,再举个按身高排队的例子,最后看一下程序,立马明了!!!

一、图解:寻找两者的区别
1、冒泡排序:
在这里插入图片描述
2、选择排序:
在这里插入图片描述

二、举例理解
比如:有四个人身高分别为:A:176cm、B:160cm、C:180cm、
D:170cm,现在你们要升国旗,老师让你们按从矮到高依次面向国旗站成一列。
冒泡排序: A先和后边的B比了一下,你这么矮站我后边,咱俩换过来,然后A再跟C比较,此时A站在第二排,然后A跟C比了比就没敢说啥,这时C看了一眼身后,发现D这么矮还跑我后边,于是他就跟D换了,这样经过一轮后顺序为B、A、D、C。
选择排序:A先和B比了一下,他俩就换位置了,然后A又跟C比了一下,看见C老高了,就放弃了,但是他觉得自己还能往后,于是又找D比了比,成功的和D换了,这样经过一轮后顺序为:B、D、C、A。
总结:冒泡只能在相邻的两个数之间比较,选择是一个和它后边的挨个比一比。
三、源程序:
1、冒泡排序

(1)源代码如下:例如将数组a[N] = {12,56,34,6,28,90,75,46,23,9};从小到大排序。
for循环的外层循环只是控制循环的次数,内层的循环依次取第n个数,与后边一个数第n+1个比较,如果 a[n] >a[n+1],也就是前一个数 大于随后一个数则交换,这样内层for循环第一次结束,则为{12,34,6,28,56,75,46,23,9,90},然后这样循环N-1次,就可以将这些数按从小到大排列出来。
在这里插入图片描述
(2)运行结果:
在这里插入图片描述
2、选择排序
(1) 源代码如下:例如我们这十个数a[N] = {12,56,67,6,8,90,34,32,9,40};从小到大排序。
for循环除了表示循环的次数,还要取出一个数,内层循环依次拿出外层循环取出之后的数与这个数比较,例如:取出a[0],则在内层循环分别拿a[1]、a[2]、a[3]直到a[9]挨个与a[0]比较一下,满足a[m] > a[n]之后,两者交换,然后再比较a[m]和a[n+1],这样依次执行就可以将这十个数排列出来。

在这里插入图片描述

(2) 运行结果:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值