初学c语言不久,发现好多同学对选择排序和冒泡排序傻傻分不清楚,在这里斗胆对它们的区别作出解释,也是对自己的学习成果作出检验,欢迎个位作出批评指正。
冒泡排序
用简单的话来讲就是,从左往右,两两相互比较大小,左边的大就交换位置,循环往复,把较大的放后面。
下面是冒泡排序图解
下面是冒泡排序的代码实现
选择排序
也用简单的话来说,就是从第一个数开始,与后面所有的数相比较,找出最小的数,放在第一个位置,以此类推,每一轮确定一个相对于这一轮最小的数。
下面是选择排序图解
下面是选择排序的代码实现
最后,总结一下冒泡和选择的区别:
冒泡排序是左右两个数相比较,而选择排序是用后面的数和每一轮的第一个数相比较;
冒泡排序每轮交换的次数比较多,而选择排序每轮只交换一次;
冒泡排序是通过数去找位置,选择排序是给定位置去找数;
当一个数组遇到相同的数时,冒泡排序相对而言是稳定的,而选择排序便不稳定;
在时间效率上,选择排序优于冒泡排序。