时间复杂度
由于受运行环境和输入环境的影响,代码的绝对执行时间是无法预估的,但是我们却可以预估代码对的基本操作执行次数。
基本操作执行次数
小飞上班一共有4种交通工具,每一种花费的时间都是不一样的,我们一起来看看
场景一
从家到公司路程10km,骑哈罗电单车,每3分钟骑1km,那么骑到公司多长时间?
答: 3x10 = 30 分钟
那如果路程是 n km 呢? 那从家骑到公司就是 3 * n = 3n 分钟
如果用一个函数来表达骑车时长,可以记作 ,n 为路程的长度。
场景二
从家到公司路程 1600m,2路公交(步行),每5分钟步行剩余路程的一半,即第5分钟步行 800m ,第10分钟步行 400m,第15分钟步行 200m,... 那么小飞走到离公司还有 100m,需要多久呢?
答:数字16不断除以2,那么除几次以后的记过等于1? 这里就涉及到数学中的对数,即以2为底16的对数
因此,走到离公司还剩100m,需要5* =20分钟
如何理解「对数」?
对数源于指数,是指数函数反函数
因为:
所以:
场景3
小飞坐公交车到公司30分钟,每5分钟看一眼美女。那么小飞坐公交车到公司需要多长时间?
答:自然是30分钟,因为骑车和看美女是没有关系的。无论看多少眼美女,公交车到公司的时间仍然是30分钟,记作
场景4
小飞从家到公司10km,每骑1km需要1分钟的时间,骑行第二个1km需要2分钟时间,骑行第三个1km需要3分钟时间...... 每多骑1分钟,所花的时间也多一分钟,那么小飞骑到公司,需要多长时间?
答案是从1累加到10的总和,也就是55分钟。
如果从家到公司是N公里呢?
那么就是
记作
参考
《漫画算法》