1. 程式人生 > >排序算法工具類

排序算法工具類

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; } }

排序算法工具類