做宣传的视频网站有哪些,word文档怎么做网站跳转链接,中卫网站建设哪家好,百度快照怎么没有了虽然面试的时候总是被问到这个问题#xff0c;但你写代码的时候#xff0c;真的会想到这个问题吗#xff1f;时间复杂度#xff0c;说的当然不是你写的代码执行用了多长时间#xff0c;而是代码执行语句的次数。 目录
每行代码都需要注意
计算方法
1 例如常量增长
2 … 虽然面试的时候总是被问到这个问题但你写代码的时候真的会想到这个问题吗时间复杂度说的当然不是你写的代码执行用了多长时间而是代码执行语句的次数。 目录
每行代码都需要注意
计算方法
1 例如常量增长
2 嵌套循环
优化时间复杂度 每行代码都需要注意
试想一下你用古老的方法写了一大段然后还避免不了出个bug然后其他同事做同样的功能用了一个新方法就写了一行代码代码审查的时候大家会怎么看你呢。
不过一般写代码的时候倒是还不涉及太多的时间复杂度因为你那一大段顶死也就是十几行或者二十几行计算机执行这而是来行代码又能多复杂呢时间复杂度更多的时候会用于涉及到算法的时候。
至于说到算法可能就不是这几行几十行的执行了一个循环下来稍有不慎几百行几千行了就是。虽然这么说但我们仍然要尽量避免写冗余的代码毕竟几十行几十行下来日旷持久也是一种消耗。你可以在一行代码上下分别打印时间做个记录看看一段时间下来你的用户们的设备执行这一行JS代码会消耗多久的时间。
计算方法
那么我们该如何看自己代码或者写的一些算法的时间复杂度呢通常计算时间复杂度都是选取执行过程中相对增长最高的项或者理解为最坏的情况或者是最耗时的情况。
1 例如常量增长
如果有一个算法是计算常量的哪怕执行上万次复杂度也是O(1)
let n 0;
for (let i0;i10000;i) {n
}
2 嵌套循环
例如我们的二维嵌套循环实现中时间复杂度就是看得内部循环的语句决定的。例如下面的算法语句看的主要是就是内部的循环次数以此为基础再算上外部的循环次数看下面这个On*m
for (i 0; i m; i){for (j 0; j n; j) {...// console.log(i);...}
} 如果外层也是n不是m的话那就是O(n^2)啦。
优化时间复杂度
优化JavaScript代码以降低时间复杂度是一个重要的目标特别是当处理大量数据或执行频繁的操作时。以下是一些常见的技巧和策略可以帮助你降低JavaScript代码的时间复杂度 减少循环嵌套 循环嵌套是导致时间复杂度增加的主要因素之一。尽量避免不必要的嵌套循环并尝试将算法重构为更简洁的形式。 避免重复计算 如果某些计算结果在算法执行过程中多次使用可以考虑将其缓存起来避免重复计算从而提高性能。 优化递归算法 如果你使用递归算法确保它的递归深度不会过深以避免栈溢出。在可能的情况下尝试将递归算法转换为迭代算法因为迭代算法通常更有效率。 避免不必要的对象创建 避免在循环中创建大量临时对象特别是在频繁执行的代码段中。 利用缓存 当需要频繁地访问某些计算结果时可以考虑使用缓存来存储这些结果以避免重复计算。