js中快速排序如何实现

1、分区,从数组中选择一个基准,所有比基准小的元素都放在基准前面,比基准大的元素放在基准后面。

2、递归,递归地对基准前后的子树组进行分区。

实例

Array.prototype.quickSort=function(){
constrec=(arr)=>{
if(arr.length===1){
returnarr;
}
constleft=[];
constright=[];
constmid=arr[0];
for(leti=1;i<arr.length;i+=1){
if(arr[i]<mid){
left.push(arr[i]);
}else{
right.push(arr[i]);
}
}
return[...rec(left),mid,...rec(right)];
};
constres=rec(this);
res.forEach((n,i)=>{
this[i]=n;
});
};

constarr=[2,4,5,3,1];
arr.quickSort();

以上就是js中快速排序的实现,希望对大家有所帮助。更多js学习指路:js教程

原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容