空间复杂度
程序所需的空间主要由以下部分组成:
1. 指令空间
指令空间指编译之后的程序指令所需的存储空间。
2. 数据空间
所有常量和变量值所需要的存储空间。
3. 环境栈空间
环境栈用来保存暂停的函数和方法恢复运行时所需的信息。包括:返回地址&正在调用的函数的所有局部变量的值以及形式参数的值(有些编译器仅对递归函数保存局部变量和形参)。
时间复杂度
用分析方法确定一个程序的运行时间是很复杂的,因此只能估计运行时间。而且有两个比较容易控制的方法:1)找出一个或多个关键操作,确定它们的执行时间;2)确定程序总的步数。
【关键操作可以是乘法,加法之类的。步数指的是对程序/函数的所有操作部分都进行统计】
用渐进记法来估计时间复杂度。(大O记法)
摘录总结于《数据结构、算法与应用:c++语言描述》第二版