在实际开发中,通常会选择以空间换时间。
-
时间复杂度:是对一个算法运行时间长短的量度,用大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, 执行次数是线性的。