排序:創建工具類

需求

  • 生成隨機數組
  • 進行數組中的交換
  • 打印數組
  • 測試運行時間
  • 判斷數組是否有序

示例

public class SortUtils {
    //不允許實例化
    private SortUtils(){}

    //生成有n個元素的隨機數組,每個元素的隨機范圍為[rangeL, rangeR]
    public static int[] getRandomIntArray(int n,int rangeL,int rangeR){
        assert rangeL <= rangeR;
        int[] arr = new int[n];
        for (int i=0;i<n;i++){
            arr[i] = (int) (Math.random() * (rangeR - rangeL + 1) + rangeL);
        }
        return arr;
    }

    //交換數組里的兩個數
    public static void swap(int[] arr,int i,int j){
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }

    //打印數組
    public static void printArr(int[] arr){
        int length = arr.length;
        for (int i=0;i<length;i++){
            if (i==length-1){
                System.out.println(String.valueOf(arr[i]));
            }else {
                System.out.print(arr[i]+",");
            }
        }
    }



    /**
     * 測試運行時間的通用方法
     * @param className
     * @param methodName
     * @param arr
     */
    public static void runTime(String className,String methodName,int[] arr){
        try {
            Class clazz = Class.forName(className);
            Method method = clazz.getMethod(methodName, int[].class);
            int start = (int) System.currentTimeMillis();
            method.invoke(null, arr);
            int end = (int) System.currentTimeMillis();
            if (isSort(arr)){
                System.out.println("方法"+methodName+"運行時間為:"+(end-start)+"ms");
            }else{
                System.out.println("排序有誤");
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //判斷數組是否有序
    public static boolean isSort(int[] arr){
        int length = arr.length;
        for (int i=0;i<length-1;i++){
            if (arr[i]-arr[i+1]>0){
                return false;
            }
        }
        return true;
    }
}
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,284評論 25 708
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,953評論 6 342
  • 畫外音: 英語真是越來越沒有優勢了,以前可不是這樣啊……嚶嚶嚶 不知道你身邊有沒有學英語專業出身的朋友,他們工作找...
    艾學習閱讀 876評論 13 18
  • 語音寫作,2015年9月18日 在寫作方式的玩法上,出現了錄音寶的評論,說可以在iPhone上進行精準的語音轉文字...
    劍飛在思考閱讀 801評論 0 0