1. public class BubbleSortAlgorithm {
    2. public static void bubbleSort(int[] arr){
    3. //如果数组为null,或者数组为空或只有一个元素
    4. if (arr == null || arr.length < 2){
    5. return;
    6. }
    7. int n = arr.length;
    8. for (int end = n - 1; end >= 0; end --){
    9. //这是以后面的数为基数进行比较的
    10. /*for (int second = 1; second <= end; second ++){
    11. if (arr[second] < arr[second - 1]){
    12. swap(arr, second, second - 1);
    13. }
    14. }*/
    15. //这是以前面的数为基数进行比较的
    16. for (int first = 0; first < end; first ++){
    17. if (arr[first] > arr[first + 1]){
    18. swap(arr, first, first + 1);
    19. }
    20. }
    21. }
    22. }
    23. //互换位置,将最小的数置前
    24. public static void swap(int[] arr, int i, int j){
    25. int temp = arr[i];
    26. arr[i] = arr[j];
    27. arr[j] = temp;
    28. }
    29. public static void printArr(int[] arr){
    30. for (int i=0; i < arr.length ; i++){
    31. System.out.print(arr[i] + " ");
    32. }
    33. System.out.println();
    34. }
    35. public static void main(String[] args) {
    36. int[] arr = {7, 2, 3, 8, 4, 1, 6, 1, 9};
    37. //排序前打印一次
    38. printArr(arr);
    39. //排序
    40. bubbleSort(arr);
    41. //排序后打印一次
    42. printArr(arr);
    43. }
    44. }