含义
算法的时间复杂度通常用大O符号表述,定义为T[n] = O(f(n))。
大O表示法,用于描述计算机算法的效率,在计算机中,这是一种粗略的度量。
这个其实就是当数据项个数发生变化时,算法的效率会跟着发生变化。
推导出大O表示法的方式
① 用常量1取代运行时间中所有的加法常量。
② 在修改后的运行次数函数中,只保留最高阶项。
③ 如果最高存在且不为1,则去除这个项乘积的系数。
常见的大O表示形式
符号 | 名称 |
---|---|
O(1) | 常数 |
O(log(n)) | 对数 |
O(n) | 线性 |
O(nlog(n)) | 线性和对数乘积 |
O(n^2) | 平方 |
O(2^n) | 指数 |
O(n!) | 阶乘 |
对应的图形增长趋势
常用的时间复杂度所消耗的时间从小到大依次是:
O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n!)