时间复杂度与空间复杂度的基本概念
来源:互联网 发布:ipad程序员必备app 编辑:程序博客网 时间:2024/05/12 12:14
时间复杂度:
时间复杂度是指计算函数执行的基本次数,这里所指的函数是指数学里面的函数。
计算时间复杂度的时候一般会采用取大舍小的方法,比如时间复杂度=N^2+10,我们就会舍去10
一个函数的算法我们也分好几种情况,而我们一般都是考虑最坏的情况。
最好情况:输入的次数是函数运行的最小运行时间。
最坏情况:输入的次数是函数的最大运行时间。
平均情况:输入的次数是函数运行次数期望的运行时间。
我们举一些简单的例子:
void Test1(int N){int i = 0;int j = 0;int k = 0;for (i = 0; i < N; ++i){for (j = 0; j < N; ++j){//……}}for (k = 0; k < 2 * N; ++k){//……}int count = 10;while (count--){//……}} #include<stdio.h>int main(){Test1;return 0;}她的时间复杂度为:O(N^2)
void Test2(int N;int M){int i = 0;int j = 0;for (i = 0; i < M; ++i){}for (j = 0; j < N; ++j){}} #include<stdio.h>int main(){Test2;return 0;}它的时间复杂度是:O(M*N)
递归算法的时间复杂度为:递归总次数*每次递归的次数
空间复杂度:
空间复杂度的计算与空间复杂度类似,也是用O的渐进表示法。
要注意的是递归算法的空间复杂度,假如递归深度为N*每次递归的空间大小,如果每次递归的空间为常数,则空间复杂度为O(N)。
以斐波那数列学习时间复杂度与空间复杂度
他是以兔子生长数目为例子:
第一个月月初有一对刚诞生的兔子,第二个月之后(第三个月初)它们可以生育,每月每对可生育的兔子会诞生下一对新兔子,兔子永远不死去
这个函数的定义为:
它的时间复杂度是:O(2^N),它的空间复杂度是O(N).
阅读全文
0 0
- 时间复杂度与空间复杂度的基本概念
- 算法的时间复杂度与空间复杂度
- 时间复杂度与空间复杂度的研究
- 时间复杂度与空间复杂度的知识点
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 空间复杂度与时间复杂度
- 时间复杂度与空间复杂度
- 时间复杂度与空间复杂度
- 搭建本地 Registry
- 2017.05.24回顾 mysql添加索引
- 代码添加脚本 删除脚本
- win7 64位纯净版系统c盘空间显示与实际占用空间不对的解决方法图文教程
- 解决Gradle插件在eclipse或打包时不及时更新缓存的问题
- 时间复杂度与空间复杂度的基本概念
- 【poj 2492】A Bug's Life (带权并查集)
- shell脚本中传输传递问题分析
- TP的命名规范
- [leetcode]456. 132 Pattern
- Android View的一些位置
- Ubuntu 安装python 2.7.11
- 【Log】一个功能强大的Log封装库包括控制日志输出,保存Log到文件,过滤输出等级。。
- npm 全局操作