美文网首页
冒泡排序

冒泡排序

作者: 御都 | 来源:发表于2019-07-23 22:17 被阅读0次
    import java.util.Arrays;
    
    public class Test1 {
        public static void bubbleSort(int[] arr){
            int length = arr.length;
    //以最坏情况来看,排序最多能排length-1轮,用i来表示比较的轮次,从1开始计数 
            for(int i=1;i<=length-1;i++){
    //flag表示排序过程中是否有位置交换
                boolean flag = false;
    //j表示数组的下标,相邻的2个元素。arr[j]和arr[j+1]进行比较
    //每排完一轮需要比较的数就减1,所以j+1<length-i+1,即j<length-i
                for(int j=0;j<length-i;j++){
    //如果左边的元素大于右边的元素则发生交换
                    if(arr[j]>arr[j+1]){
                        int temp = arr[j+1];
                        arr[j+1] = arr[j];
                        arr[j] = temp;
                        flag = true;
                    }
                }
    //如果一轮中没有发生位置交换,表示排序已完成。外层循环可以停了
                if(!flag){
                    System.out.println("跳出循环");
                    break;
                }
            }
        }
        public static void main(String[] args){
            int[] ds = {1,2,3,4,5};
            bubbleSort(ds);
            System.out.println(Arrays.toString(ds));
        }
    }
    

    相关文章

      网友评论

          本文标题:冒泡排序

          本文链接:https://www.haomeiwen.com/subject/szezlctx.html