冒泡排序

158 阅读1分钟
```
import java.util.Arrays;

// 冒泡排序
// 对长度为两个及以上的数组进行操作
// 思路: 与选择排序对比,选择排序每次选最小,从前往后排
//        冒泡排序,每次选最大,从后往前走
// 核心,从前往后,两两对比,大的往后放,循环一次,无序中选出最大值放在最后
public class BubbleSort {
    public static void main(String[] args) {
        int[] toSortArr = {4,5,1,2,3};
        for(int i = toSortArr.length - 1; i > 0 ; i--) {
            for(int j = 0; j < i; j++) {
                if(toSortArr[j] > toSortArr[j+1]) {
                    swap(toSortArr, j+1, j);
                }
            }
        }
        System.out.println(Arrays.toString(toSortArr));
    }
    public static void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

}
```
冒泡排序产生的运算为,外层(n-1)次,内层是从(n-1)递减到1,所以是(n-1)的前n项和,等差数列,时间负责度o(n^2)