var arr = [4,3,6,2,6,8,9,0,1]
function quick(args) {
if (args.length <= 1) {
return args;
}
let compare = args.shift(), // 拿出第一个作为比较值
left = [], // 装小的
right = []; // 装大的
for (let i = 0; i < args.length; i++) {
if (args[i] < compare) {
left.push(args[i]);
} else {
right.push(args[i]);
}
}
return [...quick(left), ...[compare], ...quick(right)]; // 合并数组
}
console.log(quick(arr)); //[0, 1, 2, 3, 4 , 6, 6, 8, 9]
js实现快排简单易懂
最新推荐文章于 2024-08-03 21:38:43 发布
本文介绍了一种名为'quick'的函数,它使用递归和数组划分的方法实现快速排序。通过将数组分为小于和大于比较值的两部分,然后递归地对这两部分进行排序,最终返回合并后的有序数组。示例展示了如何对给定的vararr数组进行排序并输出[0,1,2,3,4,6,6,8,9]。
648

被折叠的 条评论
为什么被折叠?



