最简单、最快捷、代码量较少的快速排序

最近在看排序算法,偶然发现还有这样一种写法,很简单,也很容易理解,代码量还特别小,拿出来跟大家分享一下;希望大家在面试的时候或做项目的时候能用上!!!来看代码吧

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)) ;  //打印结果


结果展示:



尾巴:排序算法有很多种,大家根据情况选择最适合自己的就是最好的。如果能掌握更多种,也是非常棒的,对自己的能力也是一种提升,希望能对大家有用。




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值