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

来源:互联网 发布:恢复中国国籍 知乎 编辑:程序博客网 时间:2024/06/06 02:53

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

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

冒泡:

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

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

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



选择排序法:

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

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

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

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

下标最小的那个数交换。


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


0 0
原创粉丝点击