数据结构与算法_02_算法和算法复杂度

本文深入解析算法的五大特征:有穷性、确定性、可行性、输入与输出,阐述时间复杂度与空间复杂度的概念及计算方法,帮助理解算法效率评估。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

算法特征

时间复杂度

空间复杂度


算法特征

  • 有穷性:有限步之后不会出现无限循环
  • 确定性:不存在二义性
  • 可行性:能实现的算法
  • 输入:能被计算机处理的各种类型数据,如数字、音频、图像等
  • 输出:一至多个程序输出结果

时间复杂度

用来衡量算法随着问题规模增大,算法执行时间增长的快慢

定义:语句总的执行次数T(n)是关于问题n的函数,进而分析T(n)随n变化情况,从而确定T(n)的数量级。

算法的时间量度(算法复杂度):T(n)=O( f(n) ); 它表示随问题规模n的增大,算法执行时间的增长率和 f (n)的增长率相同。

计算方法:取算法时间增长最快的那个函数项,把他的系数改为1【执行次数=时间】

常用时间复杂度大小关系:从左至右,时间性能依次降低

O(1)< O(log n)< O(n)< O(nlog n)< O(n*n)< O(n*n*n)< O(2^n)

 

空间复杂度

用来衡量算法随着问题规模增大,算法所需空间增长的快慢

S(n)指算法运行过程中所使用的辅助空间的大小。

辅助空间:除了存储算法本身的指令、常数、变量和输入数据外,还需要存储对数据操作的存储单元。

算法原地工作是指算法所需的辅助空间是常量,即O(1)。

主要分析其问题规模函数 S(n)的数量级。 S(n)= O(g(n))

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值