在实际开发中,通常会选择以空间换时间。
-
时间复杂度:是对一个算法运行时间长短的量度,用大O表示,记作T(n)=O(f(n))。
常见的时间复杂度按照从低到高的顺序,包括O(1)、O(logn)、O(n)、O(nlogn)、O(n^2)- 由于受运行环境和输入规模的影响,代码的绝对执行时间是无法预估的。但我们却可以预估代码的基本操作执行次数。
- 设T(n)为程序基本操作执行次数的函数(也可以认为是程序的相对执行时间函数),n为输入规模,以下场景为程序中最常见的4种执行方式:
- 场景1: T(n)=3n, 执行次数是线性的。
void eat1(int n){ for(int i=0; i<n; i++){ System.out.println("等待1分钟"); System.out.println("等待1分钟"); System.out.println("吃1cm面包"); }} - 场景2: T(n)=5logn,执行次数是用对数计算的。
void eat2(int n){
- 场景1: T(n)=3n, 执行次数是线性的。

本文介绍了算法的时间复杂度和空间复杂度的概念,用于衡量算法运行时间和所需存储空间。常见的时间复杂度包括O(1), O(logn), O(n), O(nlogn), O(n^2),空间复杂度则有O(1), O(n), O(n^2)等。通过分析代码执行次数,可以推导出相应的时间复杂度,如线性、对数和多项式。空间复杂度则关注算法运行时的临时存储需求,递归算法的空间复杂度与递归深度相关。"
104740161,9356127,计算斐波那契数列的C语言实现,"['C语言', '算法', '数组']

1911

被折叠的 条评论
为什么被折叠?



