算法设计与分析【1】算法复杂度

算法复杂度

算法具有输入输出,有穷性,确定性,有限性;程序可以不满足有限性

大小关系对比

O(c)<O(logN)<O(log^2N)<O(N)<O(N*logN) < O(N^2)<O(N^3)<O(2^N)<O(N!)<O(N^N)
在对比时,其实也可直接对N带入具体值计算比较
在这里插入图片描述

化简方法

1、用常数1取代运行时间中的所有加法常数C
2、保留最高阶项
3、如果最高阶项存在且不是1,去掉常数系数。比如5n^3我们取n^3,用大O表示结果

补充,有一些关于O的运算:
1、O(f+g)=O(f)+O(g)=O(max(f,g))
2、O(fg)=O(f)*O(g)
3、O(Cf(N))=O(f(N));C是正常数
4、f = O(f)

复杂度函数的基本推导过程

需要知道的公式:
在这里插入图片描述

主要的方法有(主要掌握红色的方法):

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

递归树的适用范围是问题规模以等比缩减的情况.
把非函数项作为根,把函数项作为根的儿子
每层节点的值就是当前迭代的非函数项的值
递归树的本质就是T(n)=树所有节点之和

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考

课程PPT
mooc算法设计与分析

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值