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阅读 355评论 0 0
  • tips:接下去会在github写博客,简书不再更新和修改文章,欢迎大家逛逛我的新博客点击查看 ,我会尽量用更容易...
    aermin阅读 3,329评论 0 6
  • 首先了解什么是快速排序。 1、找到一个基准值(一般是中间位)2、然后将数组的值与基准值比较,分为两个数组(比基准值...
    TsingXu阅读 363评论 0 0
  • 从数组中选取一个数据作为基准,一般默认数组中第一个数据,然后比基准小的放到左侧,比基准大的放到右侧完成第一轮后分割...
    夜雨声烦人阅读 710评论 0 4
  • 八零后的小时候怎么过的你知道吗?八零后的玩具是什么你知道吗?八零后的孩子如何长大,你知道吗?…… 我们小...
    N1115丁丽阅读 268评论 2 2