1-1数据结构--算法复杂度分析
2018-01-27 10:17
225 查看
1、算法时间复杂度分析:
1) 原操作:定义语句、赋值语句、输入输出语句、(即非循环、顺序、分支等控制结构)
2) 频度(Tn):原操作执行的次数
3) 算法执行时间:所有(频度×Time(原操作))之和
4) 算法时间复杂度O(n):频度的数量级
5) 问题规模n:把任何要解决的问题的输入都转化成一个数组,那么数组长度就是问题规模。
6) O(1):即常数阶,一个算法中没有循环或是循环跟问题规模n无关,比如算法中只有定义、赋值、输入输出语句时。
7) O(1)<O( log2n )<O(n)<O(nlog2n )<O( n^2)<O(n^3 )<O(2^n )<O(n!)
8) 多项式时间复杂度:O(log2n )、O(n)、O(nlog2n )、O( n^2)、O(n^3 )
9) 指数时间复杂度:O( 2^n)、O(n!)
10) P问题:可以用多项式时间复杂度的算法解决的问题
11) NP问题:只能用指数时间复杂度解决的问题
12) NP=P:想办法将NP问题转化为可以用多项式时间复杂度的算法去解决。
13) 求和定理: (n)+ (n) =max{ (n), (n)}
14) 求积定理: (n)× (n)= O( f( n )×g( n ) )
15) 根据输入实例的不同,分为最好、最差、平均时间复杂度
16) 递归算法时间复杂度分析(未解决)
2、算法空间复杂度分析:
1) 算法的存储量:程序本身占用的空间、输入数据占用的空间、临时变量占用的空间
2) 算法空间复杂度:临时变量占用的空间
3) 临时变量:函数体内定义的变量,不包括形参,也是以数量级的形式
4) 递归算法空间复杂度分析(未解决)
相关文章推荐
- 数据结构与算法一:算法复杂度分析
- 数据结构笔记-算法时间复杂度分析
- 数据结构基础 算法复杂度分析(一) 概念篇
- 8.[数据结构和算法分析笔记]散列 hasing
- 3.[数据结构和算法分析笔记]栈 Stack
- 【数据结构与算法】复杂度度量与分析
- 数据结构与算法 —— 向量的扩容策略与分摊时间复杂度
- 1.[数据结构和算法分析笔记]数组
- 6.[数据结构和算法分析笔记]堆 Heap
- [C语言] 数据结构-算法效率的度量方法-事前分析估算方法
- 数据结构之算法时间复杂度
- 数据结构与算法分析:C++描述(Mark Allen Weiss) 和 数据结构(刘大有)笔记
- 记(java数据结构与算法之顺序表与链表深入分析)
- 5.[数据结构和算法分析笔记]树 Tree
- 数据结构据与算法分析中的最大字数列求解问题
- 数据结构及算法分析——(有序向量唯一化)笔记一
- [数据结构与算法]各种排序算法的稳定性和时间复杂度小结
- 7.[数据结构和算法分析笔记]词典 Dictionary
- 数据挖掘算法的空间复杂度与时间复杂度分析
- 数据结构与算法学习(一)顺序存储结构ArrayList源码分析