mirror of
https://github.com/ShusenTang/LeetCode.git
synced 2024-09-02 14:20:01 +00:00
update 215
This commit is contained in:
parent
f00785706f
commit
0c2438e7c4
@ -21,7 +21,8 @@ nth_element(vc.begin(), vc.begin()+5, vc.end(), cmp); // 没有返回值
|
|||||||
|
|
||||||
时间复杂度平均O(n)(最坏O(n^2)),空间复杂度O(1)
|
时间复杂度平均O(n)(最坏O(n^2)),空间复杂度O(1)
|
||||||
|
|
||||||
> 可以先将nums顺序随机打乱,这样就不会出现最坏时间复杂度的情况。
|
> * 平均时间复杂度粗略证明:假设每次都是对半划分,那么第一次划分我们需要遍历约n个数,第二次需要遍历约n/2个数,... 所以总的遍历次数大概就是 n + n/2 + n/4 + n/8 + ...,用一个等比序列求和可得上式的极限(n很大时)为2n。所以这个**平均时间复杂度是与k具体多少无关的,例如当k=n/2时还是这个复杂度,即求中位数的平均复杂度也是O(n)。**
|
||||||
|
> * 可以先将nums顺序随机打乱,这样就不会出现最坏时间复杂度的情况。
|
||||||
|
|
||||||
|
|
||||||
## 思路二、堆
|
## 思路二、堆
|
||||||
|
Loading…
Reference in New Issue
Block a user