天天看点

用java实现冒泡排序

思想详解:

第一轮:第一个元素和第二个元素进行比较值大的往移,第二个和第三个元素进行比较值大的往后移,
第三个和第四个进行比较值大的往后移...以此类推,第一轮是把数组中最大值放到最后一位
第二轮:第一个元素和第二个元素进行比较值大的往后移一位,
然后第二个元素和第三个元素进行比较,值大的往后移,以此类推,把数组第二大的放到倒数第二位 以此类推

代码如下:      
//冒泡排序
        int[] arr={5,2,1,22,11,0};
        //创建一个临时变量
        int temp;
        for (int j = 0; j <arr.length-1 ; j++) {//进行比较的轮数:数组的长度-1  这里的数组长度为6 6-1=5 所有会比较5轮,经过了5轮排序
            for (int i = 0; i < arr.length - 1-j; i++) {//所有这里要-1,(防止出现数组角标越界)
                if (arr[i] > arr[i + 1]) {//因为这里是+1     这里是从小到大进行排序,如果要从大到小换成<就可以了
                    //满足条件则交换
                    temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                }
            }
        }
        System.out.print(Arrays.toString(arr));