数据结构排序算法之快速排序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构排序算法之

快速排序

●算法介绍

快速排序也是交换类排序的一种。快速排序是选择一个数据作为枢纽,将啊序列分为两部分,枢纽的一边比它小(至少不大于),另一边比它大(至少不小于)。

●执行流程

原始序列:23 45 12 90 78 56

I J

进行第一趟排序,选择23作为枢纽,整个过程是一次交替扫描的过程

1)使用最后一个元素J=56开始从右向左扫描

23 45 12 90 78 56 56>23不交换,J--

I J

23 45 12 90 78 56 78>23 J--

I J

23 45 12 90 78 56 12<23 交换I++

I J

12 45 90 78 56 45>23 交换J--

I J

12 45 90 78 56 此时I=J 所以这个位置为枢纽的位置

IJ

12 23 45 90 78 56 一趟排序结束

2) 然后从枢纽的位置开始分为两部分,按照同样的方法进行排序即可,也就递归。

●示例代码

●执行结果

ky@ky-S910-X31E:~/libz/628$ gcc quicksort.c -oquick

./quick

●性能分析

本算法的时间复杂度是n的平方,空间复杂度是O(1)。

更多内容请关注个人文库/p/helpylee

相关文档
最新文档