数据结构--算法(时间复杂度和空间复杂度)
2014-04-13 12:16
555 查看
今天学习了数据结构中的算法,了解了算法中有2个概念【时间复杂度】、【空间复杂度】
顾名思义,意思和他们的名称差不多,时间复杂度,就是说算法在运行过程中所耗用的时间,而空间复杂度,则是算法运行过程中所占用的空间(内存、硬盘等等)。
时间复杂度的计算中,要求有一定的数学功底,比如给我们一串数字,我们能转换成相应的数学公式
在算法中我们怎么去衡量【时间复杂度】、【空间复杂度】的复杂级别呢,这里有一个专业名词叫大O阶。
推导大O阶方法:
1、用常量1取代算法中的所有加减法操作。
2、在修改后的运行次数函数中,只保留最高阶项。
3、如果最高阶项存在的不是1,则去除与这个项相乘的参数。
下面我截取的一个例子
根据推导大O阶方法:
1、上面运行的次数3,用常量1表示。
2、没有最高阶
下面这个例子同上一个结果也是一样的
根据推导大O阶方法:
1、上面运行的次数12,用常量1表示。
2、没有最高阶
例子:
在这段程序中,会运行n/2次。
根据推导大O阶方法:
1、上面运行的次数n/2,不是常量。
2、最高阶,X=log2n。
再如下面平方阶的例子
一共循环n x n次
根据推导大O阶方法:
1、上面运行的次数n x n,不是常量。
2、最高阶,X=n2。
再看例子
根据推导大O阶方法:
这里要看我最后一个红框内容,他用到了推导方法中的第三点,如果最高阶项存在的不是1,则去除与这个项相乘的参数。
所以最终大O阶为:O(n2)
常见时间复杂度:
专业术语含义:
算法:
算法是解决特定问题求解步骤的描述,在计算机中为指令有序序列,并且每条制定表示一个或多个操作。
算法特性:
有穷性、确定性、可行性、输入、输出
算法设计的要求:
正确性、可读性、健壮性、高效率和低存储量。
参考书籍《大话数据结构》
顾名思义,意思和他们的名称差不多,时间复杂度,就是说算法在运行过程中所耗用的时间,而空间复杂度,则是算法运行过程中所占用的空间(内存、硬盘等等)。
时间复杂度的计算中,要求有一定的数学功底,比如给我们一串数字,我们能转换成相应的数学公式
在算法中我们怎么去衡量【时间复杂度】、【空间复杂度】的复杂级别呢,这里有一个专业名词叫大O阶。
推导大O阶方法:
1、用常量1取代算法中的所有加减法操作。
2、在修改后的运行次数函数中,只保留最高阶项。
3、如果最高阶项存在的不是1,则去除与这个项相乘的参数。
下面我截取的一个例子
根据推导大O阶方法:
1、上面运行的次数3,用常量1表示。
2、没有最高阶
下面这个例子同上一个结果也是一样的
根据推导大O阶方法:
1、上面运行的次数12,用常量1表示。
2、没有最高阶
例子:
在这段程序中,会运行n/2次。
根据推导大O阶方法:
1、上面运行的次数n/2,不是常量。
2、最高阶,X=log2n。
再如下面平方阶的例子
一共循环n x n次
根据推导大O阶方法:
1、上面运行的次数n x n,不是常量。
2、最高阶,X=n2。
再看例子
根据推导大O阶方法:
这里要看我最后一个红框内容,他用到了推导方法中的第三点,如果最高阶项存在的不是1,则去除与这个项相乘的参数。
所以最终大O阶为:O(n2)
常见时间复杂度:
专业术语含义:
算法:
算法是解决特定问题求解步骤的描述,在计算机中为指令有序序列,并且每条制定表示一个或多个操作。
算法特性:
有穷性、确定性、可行性、输入、输出
算法设计的要求:
正确性、可读性、健壮性、高效率和低存储量。
参考书籍《大话数据结构》
相关文章推荐
- 数据结构-算法效率的度量-时间复杂度和空间复杂度
- 数据结构和算法学习02-时间复杂度和空间复杂度
- 数据结构2:算法时间复杂度和空间复杂度的计算
- 数据结构和算法-时间复杂度和空间复杂度
- 时间复杂度和空间复杂度2 - 数据结构和算法04
- 时间复杂度和空间复杂度2 - 数据结构和算法04
- 数据结构与算法2——时间复杂度和空间复杂度
- 算法-时间复杂度和空间复杂度
- 作业3 算法时间复杂度和空间复杂度
- 数据结构入门——时间复杂度和空间复杂度
- JAVA数据结构和算法:第一章(时间复杂度和空间复杂度)
- 数据结构和算法_02时间复杂度和空间复杂度
- 第一章作业2-算法时间复杂度和空间复杂度
- 算法第一弹:时间复杂度和空间复杂度
- 数据结构算法笔记 lesson2 算法 时间复杂度和空间复杂度
- 《数据结构》2.10设计一个算法,删除顺序表中值为item的元素,要求算法的时间复杂度是O(n),空间复杂度是O(1)
- 数据结构之时间复杂度和空间复杂服
- 常用的算法时间复杂度和空间复杂度
- 算法【1】:时间复杂度和空间复杂度