冒泡排序
冒泡排序的算法复杂度是O(n2)
简单讲解
冒泡排序有两层循环:
- 内层循环,把数组内的相邻的两个数字进行排序,这样每遍历一次,可以找到当前参与遍历的数组长度中的最大(最小)值,并且迭代一次,数组长参与遍历的长度都会减1(就是数组总长度减去外层循当前环迭代的次数),这样第n+1次遍历的时候,会排除第n次遍历计算出的最大(最小)值;
- 外层循环,数组内与几个元素,需要迭代几次
public class BubbleSort {
public static void main(String[] args) {
int [] arr = {1, 4, 3, 5, 2, 0};
for (int i=0; i < arr.length-1; i++){
for (int j = 0; j< arr.length-i-1; j++){
if (arr[j+1]< arr[j]){ # 如果是降序排序,只需要把小于号改成大于号
int tmp_num = arr[j+1];
arr[j+1] = arr[j];
arr[j] = tmp_num;
}
}
}
for (int i = 0; i <= arr.length-1; i++){
System.out.println(arr[i]);
}
}
}
打印结果: