1. 用什么表示算法的运行快慢?
- n 代表是算法里面的问题规模,n越大,运算越慢,比如n=1和n=100肯定是不一样的;
- 机器不一样,相同的算法代码运行所消耗的时间也不一样;
2. 借用生活中的案例
类比生活中的一些事件,我们通常会采用 估算,而不是具体到秒;算法中的时间复杂度也是借鉴生活中的案例;
3. 时间复杂度
3.1 案例1
- O: 数学中式子的上界,可以理解为估算的意思;
- O(1),O(n), O(n^2), O(n^3) 里面的1,n等代表 估算时间单位,打印一个print是一个 单位,表示O(1),打印3行print,也是O(1),因为它是一个单位;
3.2 案例2
如上图所示:因为运行三行print和运行一行,其实对计算机来说影响不大,它只要不突破规模,即还是O(1) ,1是一个估算单位,就好比生活中别人问你睡了几个小时,你不会说睡了几个小时几分几秒,而是说睡了几个小时,小时和秒是不同的时间单位规模;
3.3 案例3
当循环中存在运行减半的现象,必然存在对数,由于计算机当中大多数都是2进制,所以可以将O(log2^n) 简写成 O(logn);