public class BubbleSortAlgorithm { public static void bubbleSort(int[] arr){ //如果数组为null,或者数组为空或只有一个元素 if (arr == null || arr.length < 2){ return; } int n = arr.length; for (int end = n - 1; end >= 0; end --){ //这是以后面的数为基数进行比较的 /*for (int second = 1; second <= end; second ++){ if (arr[second] < arr[second - 1]){ swap(arr, second, second - 1); } }*/ //这是以前面的数为基数进行比较的 for (int first = 0; first < end; first ++){ if (arr[first] > arr[first + 1]){ swap(arr, first, first + 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 printArr(int[] arr){ for (int i=0; i < arr.length ; i++){ System.out.print(arr[i] + " "); } System.out.println(); } public static void main(String[] args) { int[] arr = {7, 2, 3, 8, 4, 1, 6, 1, 9}; //排序前打印一次 printArr(arr); //排序 bubbleSort(arr); //排序后打印一次 printArr(arr); }}