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
暂无评论内容