这是本人的第一篇博客,如果有问题希望大家多多指正,谢谢。
今天在看《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以上便是个人的思路,如果有问题欢迎大家提出。