【排序算法】快速排序

本篇文章来聊一聊快速排序,快速排序其实非常简单,但仍有很多同学不能理解,究其原因,是大家没能真正体会排序的原理,如果你对快速排序还不太了解,那么这篇文章你绝对不能错过。

基本思想

先说说快速排序的基本思想:

  1. 任取一个元素为中心
  2. 将序列中所有比它小的元素放在其前面,比它大的元素放在其后面,从而形成两个子表
  3. 对两个子表分别做快速排序,直至子表中仅剩一个元素

图解排序过程

理解了思想后,我们通过图解来感受一下快速排序的全过程。

现有如下的一个序列:
在这里插入图片描述
如何对其进行快速排序呢?我们需要再准备一个等长的空序列,并将第一个元素49作为中心,然后分别与后面的元素进行比较。

比如第二个元素38小于49,则38应放在49的左边,这里我们就可以先将元素值49进行保存,然后将38放到空序列的首位:
在这里插入图片描述
接着比较,发现65大于49,则需将65放到空序列的末位:
在这里插入图片描述
继续比较,发现97大于49,则需将97也放到空序列的末位:

~wangweijun CSDN认证博客专家 Spring Java
人生如逆旅,我亦是行人。
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付 39.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值