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 发布