最近在看排序算法,偶然发现还有这样一种写法,很简单,也很容易理解,代码量还特别小,拿出来跟大家分享一下;希望大家在面试的时候或做项目的时候能用上!!!来看代码吧
function quickSort(arr){
if(arr.length<1)
return arr;
let mid = arr.pop(); //使用pop()方法,将数组中最后一个元素删除并将删除的元素返回出来,作为基准点
let left = arr.filter(a => a<=mid); //使用filter函数,将小于等于mid的元素取出来,放进left数组当中
let right = arr.filter(a => a>mid); //将大于mid的元素放入right数组中
return quickSort(left).concat([mid],quickSort(right)) //将left数组,[mid],right数组通过concat连接起来,并返回出来
}
var arr = [4,1,7,3,16,12,8];
console.log(quickSort(arr)) ; //打印结果
结果展示:
尾巴:排序算法有很多种,大家根据情况选择最适合自己的就是最好的。如果能掌握更多种,也是非常棒的,对自己的能力也是一种提升,希望能对大家有用。