【排序算法】快速排序

举报
wangweijun 发表于 2022/03/29 23:06:42 2022/03/29
【摘要】 本篇文章来聊一聊快速排序,快速排序其实非常简单,但仍有很多同学不能理解,究其原因,是大家没能真正体会排序的原理,如果你对快速排序还不太了解,那么这篇文章你绝对不能错过。 基本思想 先说说快速...

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

基本思想

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

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

图解排序过程

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

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

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

文章来源: blizzawang.blog.csdn.net,作者:·wangweijun,版权归原作者所有,如需转载,请联系作者。

原文链接:blizzawang.blog.csdn.net/article/details/105159562

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。