排序算法工具类
2021-07-15 07:06
标签:mat 最大值 @param generate ++ 工具类 数组 mes system 排序算法工具类 标签:mat 最大值 @param generate ++ 工具类 数组 mes system 原文地址:https://www.cnblogs.com/lfdestiny/p/9536846.html/**
* 排序算法工具类
*/
public class GeneratedArray {
/**
*
* 生成随机长度数组[min,max)
*
* @param min 最小值
* @param max 最大值
* @param num
* @return
*/
public static int[] randomGeneratedArray(int min, int max, int num) {
//断言判断
assert max>min:"数组生成范围指定有误";
int[] arr = new int[num];
for (int i = 0; i ) {
//随机生成[min,max)范围内的数字,并且存放到数组中
arr[i] = (int) (Math.random() * (max - min)) + min;
}
return arr;
}
/**
* 生成一个近乎有序的数组
* @param n 数组产固定
* @param swapTimes 随机交换多少个数字
* @return arr
*/
public static int[] generateNearlyOrderedArray(int n, int swapTimes){
int[] arr = new int[n];
for( int i = 0 ; i )
arr[i] = i;
for( int i = 0 ; i ){
int a = (int)(Math.random() * n);
int b = (int)(Math.random() * n);
int t = arr[a];
arr[a] = arr[b];
arr[b] = t;
}
return arr;
}
/**
* 打印数组
* @param arr 数组
*/
public static void printArray(int[] arr){
for(int i:arr){
System.out.print(i+",");
}
System.out.println();
}
/**
* 判断数组是否有序
* @param arr
*/
public static void isSorted(int[] arr){
for(int i = 0;i