排序算法工具類
阿新 • • 發佈:2018-08-26
ner nbsp red 並且 param copy tar pre code
/** * 排序算法工具類 */ 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; } }
排序算法工具類