一、冒泡排序
1.1 基本原理
- 比较相邻的两个元素,若前一个数比后面一个数大就交换位置
- 对每一对相邻的元素做同样的操作,每一轮比较后会筛选出最大的数放在尾部
- 重复循环上面两步,每次之前筛选出来的数不用参与比较
public static int[] dubbleSort(int[] array) {
// 一共需要进行多少次循环
for (int i = 0; i < array.length - 1; i++) {
// 每次进行循环比较,优化代码:每次比较过后会产生最大值,所以去掉最后一个数
for (int j = 0; j < array.length - 1 - i; j++) {
// 进行变量之间的交换即可
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
return array;
}
时间复杂度:因为有两个for循环,时间复杂度为O(n*n)