- 博客(3)
- 收藏
- 关注
原创 为什么logn+log(n/2)+log(n/4)+...+log(n/n) = Θ((logn)^2)
首先这里logn\log nlogn其实是 2 为底的对数log2n\log_{2}nlog2n.logn+logn2+logn4+logn8+⋯+lognn==∑i=0klogn2i(这里2k=n,即k=logn)=log∏i=0kn2i=lognk+12k(k+1)2=(k+1)logn−12⋅k⋅(k+1)=12⋅logn⋅(logn+1)=Θ(log2n)\begin{align*}&\log{n}+\log{\frac{n}{2}}+\log{\frac{n}{
2025-03-03 21:55:51
797
原创 数据结构 -- 堆
MinHeap 类实现了一个最小堆数据结构,支持插入、删除最小元素、堆化等操作。最小堆是一种完全二叉树,其中每个节点的值都小于或等于其子节点的值。
2024-11-25 15:39:20
664
原创 素数筛法:埃氏筛法与线性筛法
时间复杂度是Onloglogn。如果我们从小到大考虑每个数,然后同时把当前这个数的所有(比自己大的)倍数记为合数,那么运行结束的时候没有被标记的数就是素数了。例如:考虑 2 时, 我们把 4, 6, 8, 10, 12, 14, 16, 18 … 均标记为合数。考虑 3 时, 我们把 6, 9, 12, 15, 18, 21, 24, 27 … 均标记为合数。考虑 4 时, 我们把 8, 12, 16, 20, 24, 28, 32, 36 … 均标记为合数。
2024-11-24 16:41:17
1312
1
用c++实现的最小堆源码
2024-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人