.. _algorithm: Algorithm ========= 对数 ---- loga^b = x => a^x = b loga^(mn) = loga^m + loga^n loga^(m/n) = loga^m - loga^n loga^(M^n) = nloga^M loga^b = logc^b / logc^a ln e为底 lg 10为底 log 任意底 时间复杂度 ---------- 渐进时间复杂度,表示数据规模和运算时间之间的关系。 常见时间复杂度从小到大排列: 1. O(1) 常数阶 2. O(logn) 对数阶 3. O(n) 线性阶 4. O(nlogn) 线性对数阶 5. O(n^2) 平方阶 6. O(n^3) 立方阶 7. O(2^n) 指数阶 8. O(n!) 阶乘阶 9. O(n^n) k次方阶 空间复杂度 ---------- 渐进空间复杂度,表示数据规模和算法存储空间之间的关系。 常见空间复杂度从小到大排列: 1. O(1) 2. O(n) 3. O(n^2) 递归 ----- 避免无限递归。 递归条件: * 一个问题可以分解成几个子问题。 * 问题分解之后,除了数据规模,思路是一样的。 * 存在基线或终止条件。