[Algorithm] Asymptotic Growth Rate
f(n) 的形式 vs 判定形势
但,此题型过于简单,一般不出现在考题中。
Extended:
Let's set n = 2^m, so m = log(n)
T(n) = 2*T(n^(1/2)) + 1 =>
T(2^m) = 2*T(2^(m/2)) + 1 =>
S(M) = 2*S(M/2)) + 1
通过变量替换,变为了熟悉的、主定理能解决的 形式 => S(m) ~ O(m)
故,S(m) = T(log(n)) ~ O(log(n))
关键点:match 主定理(3)的条件。
a*f(n/b) <= c*f(n) ->
3*f(n/4) <= c*f(n) ->
3*(n/4)*log(n/4) <= c*n*log(n) ->
3/4 * n*log(n/4) <= c*n*log(n)
可见,有c<1时,是满足的。
答案就是O(nlogn)
When f(x) = x*sqrt(x+1)
这里的常数1是个tricky.
去掉它,x^(3/2)
变为x,sqrt(2)*[x^(3/2)]
可见,f(x)~Θ(x^(3/2))
T(n)=T(⌊n/2⌋)+T(⌊n/4⌋)+T(⌊n/8⌋)+n.
n+(7/8)*n+(7/8)^2 *n+(7/8)^3 *n+⋯ 等比数列!
so we have a geometric series and thus,
for our upper bound.
In a similar way, we could count just the contribution of the leftmost branches and conclude that T(n)≥2n.
Putting these together gives us the desired bound, T(n)=Θ(n)
Extended:
Recurrence Relation T(n)=T(n/8)+T(n/4)+lg(n)
太难:Solution.
(a) T(n) = T(n-1) + cn link
(b) T(n) = T(n-1) + log(n) link
(c) T(n) = T(n-1) + n^2 link
(d) T(n) = T(n-1) + 1/n link
(a) 递归展开,探寻规律:
T(n)=T(n−3)+(n−2)c+(n−1)c+nc
At the end we use T(2)=T(1)+2c=1+2cT(2)=T(1)+2c=1+2c. We conclude that
T(n)=1+(2+3+⋯+n)c.
可见是O(n^2)
(b) 递归展开,探寻规律:
T(n) = T(n - 1) + log n
= T(n - 2) + log (n - 1) + log n
= T(n - 3) + log (n - 2) + log (n - 1) + log n
= ...
= T(0) + log 1 + log 2 + ... + log (n - 1) + log n
= T(0) + log n!
According to Stirling's formula, 可见是O(n*log(n))
(c) 递归展开,探寻规律:
T(n)=T(0)+1^2+2^2+3^2+⋯+n^2
Or simply,
O(n^3)
(d) 这里是个调和级数
This is the nth harmonic number, Hn = 1 + 1/2 + 1/3 + ... + 1/n.
"所有调和级数都是发散于无穷的。但是其拉马努金和存在,且为欧拉常数。"
In fact, Hn = ln(n) + γ + O(1/n)
Hint:比较难,需换两次元。
[Algorithm] Asymptotic Growth Rate的更多相关文章
- 本人AI知识体系导航 - AI menu
Relevant Readable Links Name Interesting topic Comment Edwin Chen 非参贝叶斯 徐亦达老板 Dirichlet Process 学习 ...
- The Go Programming Language. Notes.
Contents Tutorial Hello, World Command-Line Arguments Finding Duplicate Lines A Web Server Loose End ...
- Exercises for IN1900
Exercises for IN1900October 14, 2019PrefaceThis document contains a number of programming exercises ...
- Caching Best Practices--reference
reference:http://java.dzone.com/articles/caching-best-practices There is an irresistible attraction ...
- WPF依赖对象(DependencyObject) 实现源码,理解WPF原理必读
/// DependencyObject encompasses all property engine services. It's primary function /// is providin ...
- Background removal with deep learning
[原文链接] Background removal with deep learning This post describes our work and research on the gree ...
- (转)Awesome PyTorch List
Awesome-Pytorch-list 2018-08-10 09:25:16 This blog is copied from: https://github.com/Epsilon-Lee/Aw ...
- Ethereum White Paper
https://github.com/ethereum/wiki/wiki/White-Paper White Paper EditNew Page James Ray edited this pag ...
- CSUOJ 2031 Barareh on Fire
Description The Barareh village is on fire due to the attack of the virtual enemy. Several places ar ...
随机推荐
- 使用 IntraWeb (34) - TIWAJAXNotifier
在异步事件中, 可以通过 TIWAJAXNotifier 发出一个通知(通过其 Notify 方法), 该通知会激发其 OnNotify 事件. 这一般用在: 当一个异步事件完成后, 立即处理随后的事 ...
- android: 动态加载碎片布局的技巧
虽然动态添加碎片的功能很强大,可以解决很多实际开发中的问题,但是它毕竟只是在 一个布局文件中进行一些添加和替换操作.如果程序能够根据设备的分辨率或屏幕大小在运 行时来决定加载哪个布局,那我们可发挥的空 ...
- Selenium2+python自动化73-定位的坑:class属性有空格
前言 有些class属性中间有空格,如果直接复制过来定位是会报错的InvalidSelectorException: Message: The given selector u-label f-dn ...
- bayer格式
1 图像bayer格式介绍 bayer格式图片是伊士曼·柯达公司科学家Bryce Bayer发明的,Bryce Bayer所发明的拜耳阵列被广泛运用数字图像. 对于彩色图像,需要采集多种最基本的颜色, ...
- I tensorflow/core/platform/cpu_feature_guard.cc:141] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
问题: 安装TensorFlow(CPU版本),使用pip install tensorflow安装,安装一切顺利,但是在跑一个简单的程序时,遇到如下情况: 大概意思是:你的CPU支持AVX扩展,但是 ...
- Go语言之高级篇beego框架之Controller
一.Controller 控制器 Controller等同于Django里的view,处理逻辑都是在Controller里面完成的,下面就写一个最简单的Controller.写controller的时 ...
- Linux网络编程:socket文件传输范例
基于TCP流协议的socket网络文件传输Demo: 实现:C语言功能:文件传输(可以传任何格式的文件) /********************************************** ...
- Java多线程学习(吐血超详细总结)(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 写在前面的话:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但 ...
- 微信小程序的同步操作
小程序里,大多数操作都是异步操作,一些重要的操作,如从网上获取重要变量值,必须要保证有值,后续操作才有意义.但异步操作,又必须把处理放到回调中,代码可读性降低,而且和大多数正常逻辑相背. 折腾了两天, ...
- HTML和CSS中判断IE版本并实现相应HTML和CSS
在编写网页代码时,各种浏览器的兼容性是个必须考虑的问题,有些时候无法找到适合所有浏览器的写法,就只能写根据浏览器种类区别的代码,这时就要用到判断代码了. 1.HTML代码中 经过本人测试,在HTML代 ...