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