java实现数组排序(冒泡排序和乱序排序)

这是本人的第一篇博客,如果有问题希望大家多多指正,谢谢。

今天在看《java从入门到精通的》的时候,看到了数组这一块,其中有道题让分别以冒泡排序和乱序排序的形式实现对数组排序,后来自己动手敲了下,话不多说,直接上代码:
 

/*
     * @Author: 
     * @Description: 乱序排序
     * @Date: 2019/5/22
     * @Param: []
     * @return: void
     **/
    public static void disOrderSort(){
        //定义数组
        int[] arr = null;
        Random random = new Random();
        //动态获取数组长度
        arr = new int[random.nextInt(10)];
        //给数组赋值
        for (int i = 0; i < arr.length; i++) {
            arr[i] = random.nextInt(100);
        }
        //输出排序前的数组
        System.out.println("排序前的数组顺序为:");
        printArr(arr);
        //对数组进行乱序排序
        for (int i = 0; i < arr.length; i++) {
            //使用random随机产生一个数组下标,范围在0-arr.length-1;
            int flag = random.nextInt(arr.length);
            //替换位置
            int temp = arr[i];
            arr[i] = arr[flag];
            arr[flag] = temp;
        }
        //输出排序后的数组
        System.out.println("排序后的数组顺序为:");
        printArr(arr);
    }

    /*
     * @Author: 
     * @Description:数组排序,第一种:冒泡排序
     * @Date: 2019/5/22
     * @Param: []
     * @return: void
     **/
    public static void arrToBubbleSort(){
        //定义数组
        int[] arr = null;
        Random random = new Random();
        //数组长度
        arr = new int[random.nextInt(10)];
        //数组赋值
        for (int i = 0; i < arr.length; i++) {
            arr[i] = random.nextInt(100);
        }
        //输出排序前的数组
        System.out.println("排序前的数组顺序为:");
        printArr(arr);
        //用冒泡排序法对数组排序
        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];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
        //输出排序后的数组
        System.out.println("排序后的数组顺序为:");
        printArr(arr);
    }

    /*
     * @Author: 
     * @Description: 打印数组
     * @Date: 2019/5/22
     * @Param: [arr]
     * @return: void
     **/
    public static void printArr(int[] arr){
        for (int eachArr: arr) {
            System.out.print(eachArr+" ");
        }
        //换行
        System.out.println("");
    }

结果如下:

//冒泡排序:

排序前的数组顺序为:
82 41 58 26 1 69 53 
排序后的数组顺序为:
1 26 41 53 58 69 82 

//乱序排序

排序前的数组顺序为:
95 51 81 25 69 77 12 17 28 
排序后的数组顺序为:
81 95 69 77 12 25 17 51 28 

以上便是个人的思路,如果有问题欢迎大家提出。

猜你喜欢

转载自blog.csdn.net/LSW_JAVADP/article/details/90442081