基本思路就是索引(0,1)比较,(1,2)比较,(2,3)比较依次进行比较,最后索引最大处的值必然为最大的值,外层循环每进行一轮比较就可以减少一次 比如第一轮是(0~n-1) 第二轮就是 (0~n-2)
时间复杂度也是bigO(n2)
public class BubbleSort { public static void bubbleSort(int[] arr) { if (arr == null || arr.length < 2) { return; } for (int e = arr.length - 1; e > 0; e--) { for (int i = 0; i < e; i++) { if (arr[i] > arr[i + 1]) { swap(arr, i, i + 1); } } } } public static void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } public static void printArray(int[] arr) { if (arr == null) { return; } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } public static void main(String[] args) { int[] arr = {6, 7, 9, 3, 1}; bubbleSort(arr); printArray(arr); } }
原文:https://www.cnblogs.com/pxy-1999/p/13227622.html