递归排序

1,070 阅读1分钟

写一个 min 函数,要求 min(numbers) 能返回数组 numbers 中的最小数字。

let min=(numbers)=>{ 
    if(numbers.length>2){
    return min([numbers[0],min(numbers.slice(1))])}else{
    return Math.min.apply(null,numbers)}
}

写出一个 sort 函数,要求 sort(numbers) 能返回一个把 numbers 从小到大排列的数组

let min = (numbers) =>{
    if(numbers.length > 2){
        return min([numbers[0], min(numbers.slice(1))])
    }else{
        return Math.min.apply(null, numbers)
    }    
}

let minIndex = (numbers) => numbers.indexOf(min(numbers))

let sort = (numbers) => {
    if(numbers.length > 2){
        let index = minIndex(numbers)
        let min = numbers[index]
        numbers.splice(index, 1)
        return [min].concat(sort(numbers))
    }else{
        return numbers[0]>numbers[1]? numbers.reverse(): numbers
    }
}