基础公式
毕业后高等数学知识,几乎都还给老师了,这里重新复习一下可能会用的一些基本数学知识,包括指数,对数,级数;归纳方法,时间复杂度曲线。
指数
- X A X B = X A + B X^A X^B = X^{A+B} XAXB=XA+B;
- X A X B = X A − B \cfrac{X^A}{ X^B} = X^{A-B} XBXA=XA−B;
- ( X A ) B = X A B \lparen X^A \rparen ^B = X^{AB} (XA)B=XAB;
- X N + X N = 2 X N X^N + X^N = 2X^{N} XN+XN=2XN;
- 2 N + 2 N = 2 N + 1 2^N + 2^N = 2^{N+1} 2N+2N=2N+1;
对数
除特别声明,没有指明对数底的默认为2.
- X A = B ; log X B = A X^A = B;\log_ XB=A XA=B;logXB=A;
- log A B = log C B log C A ; A , B , C > 0 ; A ≠ 1 \log_ AB = \cfrac{\log_ CB}{ \log_ CA};A,B,C>0;A\not=1 logAB=logCAlogCB;A,B,C>0;A=1;
- log A B = log A + log B ; A > 0 ; B > 0 \log AB = \log A+\log B;A>0;B>0 logAB=logA+logB;A>0;B>0;
- log A / B = log A − log B ; A > 0 ; B > 0 \log A/B = \log A-\log B;A>0;B>0 logA/B=logA−logB;A>0;B>0;
- log A B = B log A ; A > 0 ; B > 0 \log A^B = B\log A;A>0;B>0 logAB=BlogA;A>0;B>0;
级数
- ∑ i = 0 N A i = A N + 1 − 1 N − 1 \displaystyle\sum_{i=0}^N A^i = \cfrac{A^{N+1}-1}{N-1} i=0∑NAi=N−1AN+1−1
- ∑ i = 1 N 2 i = N ( N + 1 ) 2 \displaystyle\sum_{i=1}^N 2^i = \cfrac{N(N+1)}{2} i=1∑N2i=2N(N+1)
- ∑ i = 1 N i 2 = N ( N + 1 ) ( 2 N + 1 ) 6 \displaystyle\sum_{i=1}^N i^2 = \cfrac{N(N+1)(2N+1)}{6} i=1∑Ni2=6N(N+1)(2N+1)
算法时间复杂度
复杂度依次增大
- O ( 1 ) O(1) O(1)
- O ( log 2 n ) O(\log_2 n) O(log2n)
- O ( n ) O(n) O(n)
- O ( n log 2 n ) O(n\log_2n) O(nlog2n)
- O ( n 2 ) O(n^2) O(n2)
- O ( n 3 ) O(n^3) O(n3)
- O ( 2 n ) O(2^n) O(2n)
- O ( n ! ) O(n!) O(n!)
时间复杂度曲线
上学的时候最喜欢画图,觉得直观形象,简单的画一下,在n值较小时不太明显,复杂度主要看增长率。
参考文章
[1]: Data Structures and Algorithm Analysis in C++ Fourth Edition