美文网首页
算法入门-排序算法-冒泡排序-详解

算法入门-排序算法-冒泡排序-详解

作者: 大象蹦蹦 | 来源:发表于2021-03-18 21:04 被阅读0次

    一、核心思想

    比较相邻两个元素,将这两个元素中较大的值往后移动

    二、过程分析

    从核心思想出发分析比较过程;

    指针 j 从0位置开始遍历数组,遍历过程中比较 j 与 j+1 位置的元素值,并将较大值放在后面;

    经过一次比较之后,不难发现:数组中的最后一个元素是最大值;而在下一轮比较中此值不需要参与;

    接下来仅需要对新数组(原数组去掉最后一个元素)进行相邻位置元素两两比较即可;

    每经历一轮相邻元素比较即可找出所有参与比较的元素中的最大值;

    那么需要比较几轮?由于每轮会产生一个最大元素,所以需要比较 nums.length-1轮

    指针 j 的边界:随比较的轮数而变,左边界不变(为0),右边界为 ( j<nums.length-1-轮数 )

    相邻元素两两比较,指针 j 不需要达到最后一位,也不能达到最后一位,此条件决定了右边界的位置

    三、代码

    
    public void maopao(int nums[]){
    
            for(int i=0; i<nums.length-1; i++){ //需要比较的轮数
    
                for(int j=0; j<nums.length- 1-i ; j++){ //需要比较的元素范围逐步缩小
    
                    if( nums[j] > nums[j+1] ){
    
                        int temp=nums[j+1];
    
                        nums[j+1]=nums[j];
    
                        nums[j]=temp;
    
                    }
    
                }
    
            }
    
            System.out.println(Arrays.toString(nums));
    
        }
    
    

    相关文章

      网友评论

          本文标题:算法入门-排序算法-冒泡排序-详解

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