精确分析复杂的递推关系(nlogn算法的由来)
来源:互联网 发布:如果马谡不失街亭 知乎 编辑:程序博客网 时间:2024/05/10 12:24
精确分析复杂的递推关系(nlogn算法的由来)
设置a(n)=2*a(n/2)+n,按照以前的相同的处理方式有:
b(k)=2*b(k-1)+2^k
Go
b(k-1)=2*b(k-2)+2^(k-1)
这样可以获得b(k)=A*2^k+B*k*2^k
在这里先设置初始值,设置a(1)=1,则a(2)=2*1+2=4
故有:
A*2+B*1*2=1
A*2^2+B*2*2^2=4
Go
A=0
B=1/2
下面写程序来证明:
(defun pow (num count)
(if (or (> count 1) (eq count 1) )
(* num
(pow num
(- count 1) ) )
1))
(defun slayer ( count)
(if (or (> count 1) (eq count 1) )
(* count
(slayer
(- count 1) ) )
1))
(defun expr (n)
(if (eq n 1)
1
(+ (* 2
(expr (/ n
2)))
n)))
(setq A 0)
(setq B 1/2)
(defun formula (n)
(+ (* A
(pow 2 n))
(* B
n
(pow 2 n))))
(defun test (n)
(if (> n 0)
(progn
(print (expr (pow 2 (1- n))))
(print 'compare)
(print (formula n))
(test (- n 1)))
(print 'over)))
[8]> (test 10
5120
COMPARE
5120
2304
COMPARE
2304
1024
COMPARE
1024
448
COMPARE
448
192
COMPARE
192
80
COMPARE
80
32
COMPARE
32
12
COMPARE
12
4
COMPARE
4
1
COMPARE
1
OVER
OVER
从这里b(k)=A*2^k+B*k*2^k也能看出,其中B*k*2^k将起主要作用,特别是在目前的情况下,因为A=0,这点表现得更加清楚。
- 精确分析复杂的递推关系(nlogn算法的由来)
- 精确分析复杂的递推关系(nlogn算法的初始条件)
- 精确分析复杂的递推关系(n*logn*logn算法的由来)
- 精确分析复杂的递推关系
- 精确分析复杂的递推关系(改变初始值)
- 精确分析复杂的递推关系(多项式函数)
- 精确分析复杂的递推关系(n*logn*logn算法的稳定性)
- 精确分析复杂的递推关系(多项式函数算法的稳定性)
- 精确分析复杂的递推关系(多项式函数算法形式改变)
- 精确分析复杂的递推关系(不寻常的关系)
- 精确分析复杂的递推关系(多项式函数的叠加)
- 关系数据库的由来
- Lis的nlogn算法
- LIS的O(nLogN)算法
- 一种递推关系的变形
- 一个递推关系的解答
- 串求逆的递推算法
- 五种典型的递推关系——一步一步算法篇
- 精确分析复杂的递推关系(不寻常的关系)
- 个人总结smarty
- 个人总结smarty
- 精确分析复杂的递推关系(改变初始值)
- 在快乐中工作-读《干法》心得
- 精确分析复杂的递推关系(nlogn算法的由来)
- 关于移动和联通的GPRS手机上网的流量计费策略 真坑爹啊
- 精确分析复杂的递推关系(nlogn算法的初始条件)
- 可变参数学习笔记
- C语言 信号 获取段错误
- 团购网站的经济学分析
- 文档]PHP常用正则表达式汇总
- pkg-config用法总结
- 创建代理类及查看普通方法方法列表