快速排序算法

本文介绍了快速排序算法,通过选择一个基准元素将数组分为左右两部分,小于基准的元素移到左边,大于的移到右边,然后对左右子数组递归进行相同操作,直到排序完成。以JavaScript代码示例演示了如何实现这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * 1.选择一个元素作为基准:效益基准的移动到左边,大于基准的移动到右边分区操作结束后基准元素位置就是最终排序后的位置
 * 2.对基准元素的左边和右边继续第一步的操作,直到排序完成
 * 2.
 */
const quickSort = function(arr){
  if(arr.length<=1)return arr;
  const midIndex = Math.floor(arr.length/2);
  const mid = arr.splice(midIndex,1)[0];
  const left = [];
  const right = [];
  arr.map(item=>{
    if(item<mid){
      left.push(item)
    }else{
      right.push(item)
    }
  });
  return quickSort(left).concat(mid,quickSort(right))

}


const arr = [9,2,8,11,7,99,33,0,77,22,1,77]
console.log(quickSort(arr))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值