打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
快速排序

桶排序占用空间太大?快速排序太慢?有没有更好的排序算法呢?答案肯定是有的。

它就是快速排序。



快速排序的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序。

快速排序典型的用到了分治算法,至于分治算法是什么以后再为大家来介绍。

学懂快速排序只需要三步:

  1. 先从数列中取出一个数作为基准数

  2. 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边;

  3. 再对左右区间重复第二步,直到各区间只有一个数;

我们来规定一下基准数,在这里我们把待排序数列的第一个数字当做基准数。

选好了基准数如何分区呢?

我们可以写一个双指针扫描。左指针找大于基准数的数字,右指针找小于基准数的数字,如果右指针指向元素的下标大于左指针指向元素的小标,那么就交换元素。再把基准数交换到分界处,然后把这段数分成两段,一段是[头,基准数],另一段是[基准数+1,尾]。

可以上代码了

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
经典算法(4)一文搞懂什么是 快速排序
8大排序算法图文讲解
Python | 数据结构 - 快速排序和归并排序
Python|图述冒泡
Java常见排序算法详解——选择排序
三分钟!Go读懂经典算法(快速排序)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服