js-快速排序

2016-10-12  本文已影响104人  Top_Chenxi
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);

})

上一篇 下一篇

猜你喜欢

热点阅读