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 bubbleSort_1(array) {
        var len = array.length;
        for (var i = 0; i < len; i++) {
            for (var j = 0; j < len - i; j++) {
                if (array[j] > array[j + 1]) {
                    var tmp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = tmp;
                }
            }
        }
        return array;
    }

    var myArray = getArray(1000, 1, 100);

    // console.log(myArray);

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

    // console.log(myArray);

    /**
     * 冒泡排序(优化版) (ps:就提高一点点效率)
     * @param  array
     * @return array
     */
    function bubbleSort_2(array) {
        var len = array.length;
        var flag = true;
        for (var i = 0; i < len && true; i++) {
            flag = false;
            for (var j = 0; j < len - i; j++) {
                if (array[j] > array[j + 1]) {
                    var tmp = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = tmp;
                    flag = true;
                }
            }
        }
        return array;
    }

    var myArray = getArray(1000, 1, 100);

    // console.log(myArray);

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

    // console.log(myArray);
})

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容