简单快速排序

85 阅读1分钟

思想:默认取数组中第一项的值(leader),将遍历数组与该值进行比较,比leader小的值放置在left数组,比leader大的值放置在right数组

// 比较函数
function compare(a, b){
    if(a > b) return true;
    else return false
}

// 简单快速排序
function quickSort(arr){
    if(arr == null || arr.length === 0) return [];
    var leader = arr[0];
    var left = [];
    var right = [];
    for(let i = 1; i < arr.length; i ++){
        if(compare(leader, arr[i])){
            left.push(arr[i])
        }else {
            right.push(arr[i])
        }
    }
    left = quickSort(left)
    right = quickSort(right)
    left.push(leader)
    return left.concat(right)
}