冒泡排序:比较相邻的前后两个数据,如果前面数>后面数就交换,从0到n-1遍历一次,最大的数据下“沉”。每一趟有一个记录放到最终的位置。
实现步骤:设数组长度为N
1、比较相邻的前后两个数据,如果前面数据大于后面的数据,就将第二个数据交换。
2、这样对数组的第0个数据到N-1个数据进行一次遍历,最后一个数据就“沉”到数组第N-1个位置。
3、N=N-1如果N不为0,就重复前面两步,否则排序完成。
冒泡排序特性:平均时间复杂度:O(n^2)(最好时间复杂度:O(n) 最坏时间复杂度:O(n^2) ) , 空间复杂度:O(1) 稳定性:是。
适用场景:当数据已经基本有序时,采用冒泡排序可以明显减少数据交换的次数,进而提升排序效率。
实现代码如下(java):