JavaSE-12.3.4【常用API之Arrays、冒泡排序】

package day3.yub4by03.p3;

/*
3.5 冒泡排序原理

    一种排序的方式,对要进行排序的数据中相邻的数据进行两两比较,将较大的数据放在后面,
    依次对所有的数据进行操作,直至所有数据按要求完成排序

    如果有n个数据进行排序,总共需要比较n-1次
    每一次比较完毕,下一次的比较就会少一个数据参与
 */

public class ArrayDemo {

    public static void main(String[] args) {
        int[] arr ={87, 55, 3, 99, 678, 12};
        System.out.println("before sort:" + arrToStr(arr));

        /*//第1轮比较
        for(int i=0; i<arr.length-1-0; i++){ //arr.length-1是为了防止下行arr[i+1]数组下标越界
            if(arr[i] > arr[i+1]){
                int temp = arr[i];
                arr[i] = arr[i+1];
                arr[i+1] = temp;
            }
        }
        System.out.println(arrToStr(arr));
        //第2轮比较
        for(int i=0; i<arr.length-1-1; i++){
            if(arr[i] > arr[i+1]){
                int temp = arr[i];
                arr[i] = arr[i+1];
                arr[i+1] = temp;
            }
        }
        System.out.println(arrToStr(arr));
        //第3轮比较
        for(int i=0; i<arr.length-1-2; i++){
            if(arr[i] > arr[i+1]){
                int temp = arr[i];
                arr[i] = arr[i+1];
                arr[i+1] = temp;
            }
        }
        System.out.println(arrToStr(arr));*/

        for(int x=0; x<arr.length-1; x++){
            for(int i=0; i<arr.length-1-x; i++){
                if(arr[i] > arr[i+1]){
                    int temp = arr[i];
                    arr[i] = arr[i+1];
                    arr[i+1] = temp;
                }
            }
        }

        System.out.println("after  sort:" + arrToStr(arr));
    }

    public static String arrToStr(int[] arr){
        StringBuilder sb = new StringBuilder();
        sb.append("[");
        for(int i=0; i<arr.length; i++){
            if(i == arr.length-1){
                sb.append(arr[i]);
            }else {
                sb.append(arr[i]).append(", ");
            }
        }
        sb.append("]");
        String s = sb.toString();
        return s;
    }
}

  

package day3.yub4by03.p3;


import java.util.Arrays;

/*
3.6 Arrays

    Arrays类包含了用于操作数组的各种方法(如排序和搜索等),详见API文件
    Arrays在java.util下,用到时记得导包

    Arrays的常用方法
        public static String toString(int[] a) 返回指定数组的内容的字符串表示形式
        public static void sort(int[] a) 按照数字顺序排列指定的数组

    工具类(Math System Arrays ...)设计思想(通过查看它们的源码可以得出以下结论)
        1、构造方法用 private 修饰
        2、成员用 public static 修饰
 */

public class ArraysDemo {

    public static void main(String[] args) {
        int[] arr ={87, 55, 3, 99, 678, 12};
        System.out.println("before sort:" + Arrays.toString(arr));
        Arrays.sort(arr);
        System.out.println("after sort:" + Arrays.toString(arr));
    }

}

  

posted @ 2021-05-28 20:34  yub4by  阅读(67)  评论(0)    收藏  举报