zoukankan      html  css  js  c++  java
  • 超详细的~~~冒泡排序和选择排序

    冒泡排序

    /**
     * 冒泡排序
     * 核心思想:每次从数组的第一个位置开始两两比较,把较大的元素进行层层交换
     * 最终把当前最大的一个元素存入到数组当前的末尾
     *
     * 冒泡的核心:
     * 1、确定总共要冒几轮:数组的长度-1
     * 2、每轮两两比较
     *      i(轮数)    次数
     *      0           3
     *      1           2     次数=数组的长度-i-1
     *      2           1
     * */
    public class Demo {
        public static void main(String[] args) {
            int [] arr=new int[]{55,22,99,77};
            //1、定义一个循环控制总共需要冒泡几轮,数组长度-1
            for(int i=0;i<arr.length-1;i++){
                //控制每轮比较几次
                for(int j=0;j<arr.length-i-1;j++){
                    //当前元素大于后面元素
                    if(arr[j]>arr[j+1]){
                        //交换位置
                        //定义一个临时变量存储后一个元素
                        int temp=arr[j+1];
                        arr[j+1]=arr[j];
                        arr[j]=temp;
                    }
                }
            }
            System.out.println("数组:"+ Arrays.toString(arr));
        }
    
    }
    

    选择排序

    import java.util.Arrays;
    
    /**
     * 选择排序
     * 思想:从当前位置开始找出后面的较小值与该位置比较
     * 思路:
     *      1、控制选择几轮,数组长度-1
     *      2、控制每轮从当前位置比较几次
     *          i(轮数)     次数
     *          0             3
     *          1             2         每轮比较的几次:数组的长度-i-1
     *          2             1
     * */
    public class Demo {
        public static void main(String[] args) {
            int [] arr={5,1,2,4};
            //定义一个循环控制选择几轮
            for (int i=0;i<arr.length-1;i++){
    
                //定义一个循环控制每轮比较几次
                for (int j=i+1;j<arr.length;j++){
                    if(arr[j]<arr[i]){
                    int temp=arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                    }
    
                }
            }
            System.out.println("数组:"+ Arrays.toString(arr));
        }
    
    
    }
    
    
  • 相关阅读:
    邂逅明下(巴什博弈+hdu2897)
    抽象接口的过程小结
    线程经常使用操作
    对继承的再次理解
    阿里Java开发手冊之编程规约
    [持续更新]Windows Programming常见Hungarian Notation/Abbreviation大全
    [转]__cdecl与__stdcall
    private继承的作用
    [转]C++中的三种继承public,protected,private
    如何只利用NMAKE+CL+LINK写WIN32程序
  • 原文地址:https://www.cnblogs.com/HezhenbinGoGo/p/14243212.html
Copyright © 2011-2022 走看看