为了账号安全,请及时绑定邮箱和手机立即绑定

代码arr[pivotIndex]和arr.splice(pivotIndex,1)[0]的区别在

代码arr[pivotIndex]和arr.splice(pivotIndex,1)[0]的区别在

RISEBY 2018-11-22 18:14:41
用arr[pivotIndex]代替arr.splice(pivotIndex,1)[0]时报错,错误信息如下图:代码如下,注释掉的代码为出错的代码:function quickSort (arr) {        if (arr.length<=1) {            return arr;        };        let left = [],            right = [],            pivotIndex = Math.floor(arr.length/2);        //let pivot = arr[pivotIndex],   //直接获取arr[pivotIndex]赋值给pivot时报错        let pivot = arr.splice(pivotIndex,1)[0]; //用词句代码可以正确输出排序结果        for (let i=0; i<arr.length; i++) {            if (arr[i] <= pivot) {                left.push(arr[i]);            } else {                right.push(arr[i]);            }        }        return quickSort(left).concat(pivot,quickSort(right));    }    console.log('纯JS快排结果: '+quickSort(newarr))
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

splice()是在原来数组上修改的,每次都删除了一个元素。


查看完整回答
1 反对 回复 2018-12-26
  • 1 回答
  • 0 关注
  • 1595 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号