编辑代码

//生成一个随机数组
function getRandomList(n,length){
    let list = [];
    for(let i=0;i<length;i++){
        list.push(Math.round(Math.random()*n))
    }
    return list;
}
//冒泡排序
function bubbleSort(list,sortType){
    for(let i=0;i<list.length;i++){
        for(let j=0;j<list.length;j++){
            let temp = list[i];
            if((sortType === 'desc' && list[i]>list[j]) || (sortType === 'asc' && list[i]<list[j])){
                list[i] = list[j];
                list[j] = temp; 
            }
        }
    }
    return list;
}
//快速排序
function quickSort(arrList,sortType){
    var quick = function(arr){
        if(arr.length<=1){
            return arr
        }
        const len = arr.length;
        let middle = arr.splice(len >> 1,1)[0];
        var left = [];
        var right = [];
        for(let i=0;i<arr.length;i++){
            if(sortType === 'desc'){
                if(arr[i]<=middle){
                    right.push(arr[i]);
                }else{
                    left.push(arr[i]);
                }
            }else{
                if(arr[i]<=middle){
                    left.push(arr[i]);
                }else{
                    right.push(arr[i]);
                }
            }
        }
        return [...quick(left),middle,...quick(right)]
    }
    let list2 = quick(arrList);
    return list2
}
//归并排序
function mergeSort(arr){
    if(arr.length<=1){
        return arr;
    }
    let middle = Math.floor(arr.length / 2)
    let left = mergeSort(arr.slice(0,middle))
    let right = mergeSort(arr.slice(middle,arr.length));
    //合并
    let res = merge(left,right);
    return res;
}
function merge(left,right){
    let mergeList = [];
    let i=0;let j=0;
    while(i<left.length && j<right.length){
        if(left[i]<=right[j]){
            mergeList.push(left[i]);
            i++;
        }else{
            mergeList.push(right[j]);
            j++;
        }
    }
    while(i<left.length){
        mergeList.push(left[i]);
        i++;
    }
    while(j<right.length){
        mergeList.push(right[j]);
        j++;
    }
    return mergeList;
}
let list1 = getRandomList(100,10);
//console.log(bubbleSort(list1,'asc'));
console.log(mergeSort(list1,'asc'));