冒泡排序和选择排序的自我见解

上了快三年的大学,今天总算弄明白了冒泡排序和选择排序。记得大一的c语言考试最后一题就是冒泡排序,我当时只是强行背下来了,而没有真正的理解。不理解的东西很容易就忘记了。

今天就讲一下我对冒泡和选择排序的理解。

冒泡:

冒泡排序,顾名思义,像泡泡一样浮上来。对的,冒泡排序法就是找最大的数,把最大的数放到最后一个,依次循环。

正如程序所示,外层循环控制比较次数,因为最后一个数不需要比较所以循环次数是N-1.

第二层循环次数是N-1-i。因为每次第一层执行过后,第二次就会少一次执行,所以用N-1-i作为for语句的判断条件。



选择排序法:

因为冒泡排序是每两个数依次进行比较,所以执行次数太多,浪费时间。

而选择排序的不需要执行很多次就可以正确排序。

选择排序法是找最小值放在前面。看程序,外层循环执行N-1好理解,需要注意的是,这里要定义一个最小值min,因为我判断的时候不知道后面是否还有更小的数。

第二层循环从i+1开始执行从第一层i的下次开始执行,if判断,如果最小值比后面的数大就交换下标。此时min和i已经不等了,所以用下面的if语句将a【i】代表的数和

下标最小的那个数交换。


以上就是我对冒泡和选择排序法的理解,若有错误,欢迎在评论区提出,一起交流学习!


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值