冒泡排序
基本思想:对比相邻的元素值,如果满足条件就交换元素值,把较小的元素移动数组前面,较大的元素移动到数组后面
冒泡算法由双层循环实现,其中外层循环控制排序轮次,一般为排序的数组长度减一。而内层循环主要用于对比数组中每个临近元素的大小,以确定是否交换位置,对比和交换的次数随排序轮数而减少。时间复杂度: O(n2), 空间复杂度
: O(1)
算法实现:
package test;
import java.util.Arrays;
/**
* @author 欧阳
* @date 2022/3/7
*/
public class Demo04 {
//冒泡排序
public static void BubbleSort(int[] array) {
for (int i = 1; i < array.length; i++) { //排序轮次,数组长度-1
for (int j = 0; j < array.length - i; j++) { //内层比较,每过一轮末尾少比较一个
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
System.out.println(Arrays.toString(array));
}
}
测试:
public static void main(String[] args) {
int[] array = {6, 8, 9, 2, 5, 3, 7};
BubbleSort(array);
}
排序结果:
[2, 3, 5, 6, 7, 8, 9]