题解 | #排序#

排序

http://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896

使用快速排序:时间复杂度为O(nlog)

function quickSort(arr) {
    //    4、递归的出口
    if (arr.length<=1){
        return arr;
    }
    //    1、找到基准的位置 先取数组中间位置的数作为基准
    let privotIndex=Math.floor(arr.length/2);
    let privot=arr.splice(privotIndex,1)[0];//把基准这个位置的元素取出来
    let left=[];
    let right=[];
    //    2、然后,开始遍历数组,小于基准的元素放入左边的子集,大于基准的元素放入右边的子集
    for (let i=0;i<arr.length;i++){
        if (arr[i]<privot){
            left.push(arr[i]);
        }else {
            right.push(arr[i]);
        }
    }
    //    3、最后递归不断重复这个过程,Juin可以得到排序后的数组
    return quickSort(left).concat([privot],quickSort(right));
}
全部评论

相关推荐

06-15 02:05
已编辑
南昌航空大学 数据分析师
Eason三木:你如果想干技术岗,那几个发公众号合唱比赛的经历就去掉,优秀团员去掉,求职没用。然后CET4这种不是奖项,是技能,放到下面的专业技能里或者单独列一个英语能力。 另外好好改改你的排版,首行缩进完全没有必要,行间距好好调调,别让字和标题背景黏在一起,你下面说能做高质量PPT你得展现出来啊,你这简历排版我用PPT做的都能比你做的好。 然后自我评价,你如果要干数据工程师,抗压能力强最起码得有吧。
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务