理解了选择排序,接下来理解冒泡排序,嘿嘿。。。
什么是冒泡排序呢,这个名字很形象,每次比较相邻的两个元素,如果是升序排序,那么就把较小的数放到前面,较大的数放在后面,完成一轮,然后循环往复,这样较小的数就会像“冒泡”一样跑到最前面。
废话不多说,下面是代码:
1、冒泡排序是稳定排序,因为如果遇到相同的数字,是不会交换的。
2、冒泡排序也属于比较排序。
3、冒泡排序最少的比较次数是n - 1,这是本来就是正确的顺序,移动次数0,这时的时间复杂度为O(n);
最多的比较次数是n(n -1) / 2,这是完全相反的顺序的情况,移动次数n(n-1)/2,此时的时间复杂度为O(n^2)。