理解快速排序

1、快速排序是从冒泡排序演变而来的算法,但是比冒泡排序要高效得多,所以叫快速排序。
2、快速排序之所以快速,是因为使用了分治法
3、同冒泡排序一样,快速排序也属于交换排序,通过元素之间的比较和交换位置来达到排序的目的。
4、快速排序算法的平均时间复杂度是 O(nlogn)。
5、基准元素,英文pivot,用于在分治过程中以此为中心,把其他元素移动到基准元素的左右两边。
6、基准元素的选择:最简单的方式是选择数列的第一个元素
7、选定了基准元素以后,我们要做的就是把其他元素当中小于基准元素的都移动到基准元素一边,大于基准元素的都移动到基准元素另一边。
8、具体实现有两种方法:①挖坑法 ②指针交换法

以上内容转载了

http://www.sohu.com/a/246785807_684445 这里描述得非常清楚!

那么我在这里简单粗暴地描述下我所理解的指针交换法:
1、每次循环从right指针开始,
2、如果right指针所指向的数大于等于基准元素,则right指针向左移动,如果小于基准元素,则right指针停止移动,主动权转到left指针。(只有当right指针停止移动才把主动权转给left指针)
3、如果left指针所指向的数小于等于基准元素,则left指针向右移动,如果大于基准元素,则left指针停止移动。
4、当right指针和left指针都停止移动时,交换两个的指针所指的数。交换后新的一轮循环又开始了啦。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值