排序算法_快速排序
一、算法描述:
快速排序采用一种“分而治之、各个击破”的观念。
- 从数列中挑出一个元素,称为 "基准"(pivot),
- 重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。
- 递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。
二、图示
三、性能描述
数据结构 :数组 链表
最差时间复杂度 :O(n2)
最优时间复杂度 :O(nlogn)
平均时间复杂度 :O(nlogn)
最差空间复杂度 :根据实现的方式不同而不同
四、缺点
需要额外存储空间
五、C语言实现代码
View Code