排序算法(1) 快速排序 C++实现

2015-02-25 16:15:36 · 作者: · 浏览: 37

关于快速排序的空间复杂度,谢谢@命运他爹 同学指正。详述一下。


快速排序由于每次递归的时候会占用一个空间返回中间数位置,所以一次递归的空间复杂度为O(1)。


最好情况和平均情况下的递归深度为O(lgn),相应的空间复杂度就是O(lgn)


最坏情况下的递归深度为O(n),空间复杂度为O(n)。


?


待排序数组:7? 3? 5? 9? 8? 5? 1? 10? 4? 6


?


clipboard


?


一趟排序过程分析:


?


1 quicksort一趟排序过程


?


类声明


?


相关成员函数实现


测试:


?


运行截图:


clipboard[4]


------------------------------分割线------------------------------


C语言梳理一下,分布在以下10个章节中: