排序算法之冒泡排序(Java)

思路:相邻两个数比较大小,一次排序一个,排出最大值或者最小值。

第一轮排序下来找到了最大的数,排在arr.length-1位置上;

然后第二轮排序找到第二大的数,排在arr.length-2位置上;

依次类推,一直到还剩下一个数,排序结束。

public class 冒泡排序 {
    public static void bubbleSort(int[] arr) {
        //判断边界条件,当数组小于2个数字的时候,不用排序直接返回
        if(arr == null||arr.length<2){  
            return ;
        }
        //控制排序次数
        //每次排序一个数字,最大数排序到数组最后一位
        //每次循环减一,排序的最大数位置减一
        for(int i = arr.length-1 ; i > 0 ; i--){ 
           //每次对比自己和后一位数字大小,如果自己大,就和后一位交换
            for(int j = 0; j < i; j++){
                if(arr[j] > arr[j+1]){
                    int temp=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=temp;
                }
            }
        }
    }
posted @ 2021-03-31 16:06  小安不菜  阅读(77)  评论(0)    收藏  举报