js排序(冒泡,快排,sort)

一:冒泡排序

 let arr = [25,36,21,66,77,33,17,120,999,1,100,356];
    function babelSort(arr) {
        let temNum = 0;
        for(let i=0;i<arr.length-1;i++){
            for(let j=0;j<arr.length-1-i;j++){
                if(arr[j]<arr[j+1]){
                    temNum = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temNum;
                }
            }
        }
        return arr;
    }
    console.log(babelSort(arr)); // [999, 356, 120, 100, 77, 66, 36, 33, 25, 21, 17, 1]

二:快速排序

let arr = [25,36,21,66,77,33,17,120,999,1,100,356];
    // 快速排序
    function quickSort(arr) {
        if(arr.length <=1 ) return arr;
        let flagNum = arr.splice(0,1)[0];
        let leftArr = [];
        let rightArr = [];
        arr.forEach(item=>{
            if(item>flagNum){
                rightArr.push(item);
            }else{
                leftArr.push(item);
            }
        });
        return quickSort(leftArr).concat([flagNum],quickSort(rightArr));
    }
    console.log(quickSort(arr)); // [1, 17, 21, 25, 33, 36, 66, 77, 100, 120, 356, 999]

三:sort 排序

function asc(a,b) {
        return a-b;
    }
    function desc(a,b) {
        return b-a;
    }
    arr.sort(asc); // 从小到大排序
    arr1.sort(desc); // 从大到小排序
    console.log(arr); // [1, 17, 21, 25, 33, 36, 66, 77, 100, 120, 356, 999]
    console.log(arr1); // [999, 356, 120, 100, 77, 66, 36, 33, 25, 21, 17, 1]

猜你喜欢

转载自www.cnblogs.com/blcorder/p/12597046.html
今日推荐