算法-排序-快速排序

1. 主要思想

快速排序的思想其实很简单,就是分治+递归。

讲故事的方法比较适合描述快速排序的过程,假设有一队人,身高大小不一,先选出一个队长,然后队长说比我低的到我左边去,比我高的到我右边去。partition。

站好后,队长在分别给他左右两边的队员说,你们分别去选出各自的队长,然后执行我刚才的操作。

如此递归下去,直到要排序的队列长度为1就可以停止了。此时队列就是有序的。

快排实现的关键是partition,快排实现的关键是partition,快排实现的关键是partition,重要的事情说三遍!!!

partition要解决的问题是,给定一个数组arr[]和数组中任意一个元素a,重排数组使得a左边都小于它,右边都不小于它,这样经过一次partition后,元素a就放在了正确的位置。

2. step by step

   假设要排序的序列为a

    1)先随机在序列a中选取一个元素pivot = a[i]

    2)将小于a[i]的元素移动到a[i]的左边,大于a[i]的元素移到a[i]的右边

    3)递归的对a[i]的左

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值