在路上

不是专业,只会通俗

导航

排序算法_快速排序

一、算法描述:

  快速排序采用一种“分而治之、各个击破”的观念。

 

  1. 从数列中挑出一个元素,称为 "基准"(pivot),
  2. 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。
  3. 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。

 

二、图示

          

三、性能描述

  数据结构 :数组 链表

  最差时间复杂度 :O(n2)

  最优时间复杂度 :O(nlogn)

  平均时间复杂度 :O(nlogn)

  最差空间复杂度 :根据实现的方式不同而不同

四、缺点

  需要额外存储空间

五、C语言实现代码

View Code

 

 

参考文档:http://zh.wikipedia.org/wiki/快速排序

posted on 2013-01-16 17:40  OnRoad_  阅读(371)  评论(0编辑  收藏  举报