js-快速排序

require(['jquery'], function($) {

    /**
     * @param  length 長度
     * @param  rangeFrom 數字范圍的開始
     * @param  rangeTo 數字范圍的結束
     * @return array
     */
    function getArray(length, rangeFrom, rangeTo) {
        var tmpArray = [];
        for (var i = 0; i < length; i++) {
            var tmp = Math.floor((Math.random() * (rangeTo - rangeFrom) + rangeFrom));
            tmpArray.push(tmp);
        }
        return tmpArray;
    }

    /**
     * @param  functionName 排序函數
     * @param  array 數組
     * @return string 函數運行時間
     */
    function calRunTime(functionName, array) {
        var start = new Date().getTime();
        functionName(array);
        var end = new Date().getTime();
        return (end - start) + "ms";
    }

    /**
     * 插入排序(簡化版)
     * @param  array
     * @return array
     */
    function insertsort(array) {
        var len = array.length;
        for (var i = 1; i < len; i++) {
            if (array[i] < array[i - 1]) {
                var tmp = array[i];
                var j = i - 1;
                array[i] = array[j];
                while (j >= 0 && tmp < array[j]) {
                    array[j + 1] = array[j];
                    j--;
                }
                array[j + 1] = tmp;
            }
        }
        return array;
    }

   

    var myArray = getArray(10000, 1, 20);

    console.log(myArray);

    console.log(calRunTime(insertsort, myArray));

    console.log(myArray);

})

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 大力士_f398閱讀 349評論 0 0
  • tips:接下去會在github寫博客,簡書不再更新和修改文章,歡迎大家逛逛我的新博客點擊查看 ,我會盡量用更容易...
    aermin閱讀 3,312評論 0 6
  • 首先了解什么是快速排序。 1、找到一個基準值(一般是中間位)2、然后將數組的值與基準值比較,分為兩個數組(比基準值...
    TsingXu閱讀 355評論 0 0
  • 從數組中選取一個數據作為基準,一般默認數組中第一個數據,然后比基準小的放到左側,比基準大的放到右側完成第一輪后分割...
    夜雨聲煩人閱讀 689評論 0 4
  • 八零后的小時候怎么過的你知道嗎?八零后的玩具是什么你知道嗎?八零后的孩子如何長大,你知道嗎?…… 我們小...
    N1115丁麗閱讀 259評論 2 2