冒泡排序:依次比较相邻的两个数,时间复杂度O(n²),相同元素的前后顺序不会改变,是一种稳定的排序算法。
时间复杂度受数据的原始状态影响:
最好情况-正序:1趟排序,比较关键字n-1次,移动0次,O(n)
最坏情况-反序:n-1趟排序,每趟比较n-i次关键字(1<<i<<n-1),每次比较都要做3次记录,O(n²)
如序列:b、c、e、a、f、d
第一趟 (b c) e a f d ==> b (c e) a f d ==> b c (a e) f d ==> b c a (e f) d ==> b c a e (d f)
第一趟结果:b c a e d f
第二趟 (b c) a e d f ==> b (a c) e d f ==> b a (c e) d f ==> b a c (d e) f ==> b a c d (e f)
第二趟结果:b a c d e f
第三趟 (a b) c d e f ==> a