从执行效率上来评估一个算法的好坏, 基本方式就是比较不同算法对同一组输入的执行处理时间
这种方式存在缺点,执行时间对硬件和环境的依赖比较严重 不同的硬件和环境执行的时间完全不同
在不同的输入条件之下,可能性能优劣也存在不同的结果 比如循环求和,数越多性能越差
可读性,和健壮性(对不合理输入的反应能力和执行能力)
时间复杂度 估算程序指令的执行次数
空间复杂度,估算所需要的占用的储存空间(需要创建多少个对象)
其实就是求此数是 2 的几次方,求对数 log2(n) 执行次数就是 log2(n)
这个就是求5的对数, log5(n)
for 循环分为四块 定义的1 和 判断语句, 执行实体 和 循环后执行
大O表示>
如果执行次数是常数就是O(1)
当n是常数的时候,为 O(n) 即使 n有系数, n在很大的情况下,系数是可以忽略的
在低阶的情况下也统一记为 n的X次方 忽略低阶只取高阶
从数学上来说
从大O表示法来说 我们忽略常