algorithm - 如何计算嵌套“for”循环的运行时间?
问题描述
最近开始这样做所以需要你的帮助,假设你已经嵌套了如下所示的 for 循环,范围从 1 到 n,如何根据 Big O、Theta、Omega 计算相同的运行时间?
for(i=1; i<n; i++) {
for(j=1; j<n; j++) {
//some piece of code
}
}
解决方案
for(i=1; i<n; i++) {
for(j=1; j<n; j++) {
//some piece of code
}
}
所以让我们仔细看看这段代码。假设我们有一组 10 个项目 (n),我们一个接一个地执行这些循环。首先它必须通过 i 循环。他会将其传递为 1,然后该 1 在 1 变为 2 之前进入第二个循环 10 次。总共它必须通过循环 100 次才能到达终点。在大 O 表示法中,我们总是为最坏的情况计算 O。也就是说,需要一个位于循环末尾的项目。假设我们将 1 添加到 n。现在它必须通过循环多少次?11 * 11 即 121。因此,每当您的输入增长 1 时,该算法的成本就会呈指数增长。这就是为什么我们说 O(n^2)。
推荐阅读
- azure - Azure 托管应用程序 - 带有应用程序链接的 ViewDefinition.json 操作
- javascript - 单击按钮时如何将所有其他布尔值切换为false
- mysql - 检查值是否存在于另一个(连接的)表中并相应地在结果中填写列
- linux - for 循环在 bash 中创建的整数比预期的要多
- jenkins - gitlab gui 不显示从阶段测试返回的 jenkinsfile 报告
- python - 从列表中创建可滚动区域
- windows - 如何使用 NDIS 过滤器驱动程序从协议层重定向 TCP 数据包?
- amazon-web-services - AWS Elastic Beanstalk 日志?访问更详细的日志?
- spring-boot - 是否可以使用 Ehcache 3.x 实现缓存刷新行为?
- docker - 无法使用 minikube IP 和 NodePort 连接 Pod