/**
* 排序算法工具类
*/
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 < arr.length; 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 < n ; i ++ )
arr[i] = i;
for( int i = 0 ; i < swapTimes ; 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<arr.length-1;i++){
if(arr[i]>arr[i+1]){
System.out.println("数组不是有序");
return;
}
}
System.out.println("数组有序");
}
/**
* 复制数组
* @param arr
* @return
*/
public static int[] copyArray(int[] arr){
int[] arrs = new int[arr.length];
for (int i = 0;i<arrs.length;i++){
arrs[i] = arr[i];
}
return arrs;
}
}