快速排序的空间复杂度到底是多少?
如题
有说 O(n) 有说 O(log n) 到底多少呢?
是不是,取决于分划基准的选择,每次都选在中间,O(log n)
若基本有序,退化为冒泡,O(n)
我理解的对不?
[解决办法]
O(log n),就是递归的深度,递归的时候使用的栈空间
稍微优化一点的快排,比如取首尾中三个数据,取其中间的值作为划分标准,不会出现退化到冒泡的可能。
[解决办法]
(nlog(n))
[解决办法]
每次递归传参left,和right,平均递归次数是log(n)次,所以平均空间复杂度是O(log(n))。最坏的情况是O(n)(初始是逆序的情况)。
[解决办法]