美文网首页
js-快速排序

js-快速排序

作者: Top_Chenxi | 来源:发表于2016-10-12 15:24 被阅读104次
    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);
    
    })
    
    

    相关文章

      网友评论

          本文标题:js-快速排序

          本文链接:https://www.haomeiwen.com/subject/msyiyttx.html