美文网首页
js 排序算法

js 排序算法

作者: _不能说的秘密i | 来源:发表于2019-03-12 18:33 被阅读0次

    冒泡排序

    function bubbleSort (data)  {
        // 控制循环轮数
        for (var i=0; i<=data.length; i++) {
            for(var j=0; j<=data.length-i; j++) {
                // 每一轮都比较当前这一轮数组中前后两个元素的大小
                if (data[j] > data[j+1]) {
                    // 如果前一个值大于后一个值,则将两个值调换位置
                    var temp = data[j];
                    data[j] = data[j+1];
                    data[j+1] = temp;
                }
            }
        }
    }
    

    快速排序

    function quickSort(data) {
        if(data.length <= 1) {
            return data;
        }
    
        // 取数组中间的一个值
        var middleIndex = Math.floor(data.length / 2);
        var middleValue = data.splice(middleIndex, 1)[0];
    
        // 分别定义大于这个值和小于这个值的数组
        var left = [], right = [];
        for (var i=0; i<data.length; i++) {
            // 小于中间值放到左边, 大于中间值放到右边
            if (data[i] < middleValue) {
                left.push(data[i]);
            } else {
                right.push(data[i]);
            }
        }
    
        // 递归排序 left,right 两个数组,然后链接三个值
        return quickSort(left).concat([middleValue], quickSort(right));
    }
    

    相关文章

      网友评论

          本文标题:js 排序算法

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