目录
前言
前面说完了选择排序,今天我们来学习交换排序,交换排序其中包括冒泡排序和快速排序,那么今天我们先来学习比较简单的冒泡排序就是纯纯的交换思想来排序。
一、什么冒泡排序
在一个序列区间内,通过相邻数的比较,将最大的数冒泡到无序区间的最后,持续这个过程,直到数组整体有序。
![](https://i-blog.csdnimg.cn/blog_migrate/54e7dc703ceddf5426fbe529ba872e81.png)
二、使用代码实现
public class Paopao {
public static void bubbleSort(int[] array){
for (int i = 0; i < array.length - 1; i++) {
boolean flg = false;
for (int j = 0; j < array.length - 1 - i; j++) {
if(array[j + 1] < array[j]){
int tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
flg = true;
}
}
if(!flg){
break;
}
}
}
三、空间复杂度、时间复杂度和稳定性
空间复杂度:O(1) 没有使用其他内存
时间复杂度:O(N^2) 双重循环
稳定性:稳定 交换都是挨个进行交换的没有如果比较的时候加上等号就是不稳定的了
总结
冒泡排序是一种简单的排序算法,它也是一种稳定排序算法,虽然这个思想很简单,但是思想还是很值得借鉴的,后面重要的快速排序也是一个交换排序,快速排序可以蛮重要滴!