2.2 分析算法
2016-03-01 13:09
253 查看
INSERTION-SORT(A) 代价 次数
for j = 2 to A.lenth c1 n
key = A[j] c2 n-1
//Insert A[j] into the sored sequence A[1..j-i]. 0 n-1
i = j - i c4 n-1
while i >0 and A[i] >key c5 (j=2~n)∑tj
//数学符号难输入 j从2到n,对tj求和
A[i +1] = A[i] c6 (j=2~n)∑(tj-1)
i = i - 1 c7 (j=2~n)∑(tj-1)
A[i + 1] =key c8 n-1
T(n) = c1n + c2 (n-1)+ c4 (n-1)+ c5(j=2~n)∑tj
+ c6
(j=2~n)∑(tj-1)+ c7(j=2~n)∑(tj-1)
+ c8(n-1)
当以最佳(已正序)情况输入 T(n)=(c1+c2+c4+c5+c8)n-(c2+c4+c5+c8)b , an+b 它是n的线性函数。
当以最糟(已反序)情况输入T(n) = 1/2(c5+c6+c7)n 2 + (c1+c2+c4+1/2c5-1/2c6-1/2c7+c8)n - (c2+c4+c5+c8), an 2+bn+c 它是n的二次函数。
for j = 2 to A.lenth c1 n
key = A[j] c2 n-1
//Insert A[j] into the sored sequence A[1..j-i]. 0 n-1
i = j - i c4 n-1
while i >0 and A[i] >key c5 (j=2~n)∑tj
//数学符号难输入 j从2到n,对tj求和
A[i +1] = A[i] c6 (j=2~n)∑(tj-1)
i = i - 1 c7 (j=2~n)∑(tj-1)
A[i + 1] =key c8 n-1
T(n) = c1n + c2 (n-1)+ c4 (n-1)+ c5(j=2~n)∑tj
+ c6
(j=2~n)∑(tj-1)+ c7(j=2~n)∑(tj-1)
+ c8(n-1)
当以最佳(已正序)情况输入 T(n)=(c1+c2+c4+c5+c8)n-(c2+c4+c5+c8)b , an+b 它是n的线性函数。
当以最糟(已反序)情况输入T(n) = 1/2(c5+c6+c7)n 2 + (c1+c2+c4+1/2c5-1/2c6-1/2c7+c8)n - (c2+c4+c5+c8), an 2+bn+c 它是n的二次函数。
相关文章推荐
- 【经典算法】:兔子繁殖问题
- java给HttpsURLConnection添加信任证书
- redis数据类型 - list类型
- 如何判断一个对象是否是数组。
- Android 日常开发总结的技术经验 60 条
- 如何在Linux中反编译java源代码
- mysql之触发器trigger
- http长连接和短连接!
- CSS3 弹性盒布局
- 01背包问题详解
- Xcode7 beta 网络请求报错 App Transport Security policy
- iOS 之可穿戴设备开发之蓝牙4.0
- rhel7.0虚拟机的安装过程
- MySQL入门教程
- 第一个C#程序——Hello World!
- 自我介绍
- 映射CapsLock为Ctrl
- android 软键盘强制弹出与隐藏
- NYOJ 整数划分(二)
- Linux安装MySQL的两种方法