(升序)算法原理:
通过重复比较和交换,使较大的元素逐渐“浮”到数组后面。
具体步骤:
1.比较相邻元素,如果第一个比第二大,就交换它们两个。
2.对每一对相邻元素作同样的工作,从开始第一到结尾的最后一对。这样再最后的元素应该会是最大数。
3.针对所有的元素重复以上的步骤,除了最后一个。
4.重复步骤1~3,直到排序完成。
比较前后数值大小,然后通过temp来调换位置。
问题:第一次冒泡替换次数5,第二次为4,第三次为3,第四次为2,第五次为1。为什么每一次次数都减少一次?
因为在每一次比较替换过程中,整个数组最大的数已经下沉到数组最尾端,所以每次不需要比较最下边的数。
延申:时间复杂度:O(n2),空间复杂度:O(1),冒泡算法时间复杂度较高,效率不高,但是如果要求稳定性可以使用,它的稳定性是最高的。可以通过分而治之的思想,将大规模数据划分为小块,在小块内采用冒泡排序,然后合并排序的小块,实现整体有序。这可以在一定程度上提高效率。
标签:02,Algorithm,复杂度,元素,算法,数组,升序,排序 From: https://www.cnblogs.com/tu1355140301/p/17433785.html