嵌套循环难题?


在本部分,我们将介绍一个有趣的难题。我们将看到两段代码段。两者都有两个嵌套循环。我们必须确定哪一个运行得更快。(我们将假设编译器不优化代码)。

代码段 1

for(int i = 0; i < 10; i++){
   for(int j = 0; j<100; j++){
      //code
   }
}

代码段 2

for(int i = 0; i < 100; i++){
   for(int j = 0; j<10; j++){
      //code
   }
}

两段代码的运行次数相同。两种情况下,两个循环内的代码都会执行 10000 次。但是如果仔细观察,我们可以发现第二段代码比第一段代码执行的任务更多。在第一段代码中,内部循环将执行 10 次。因此,初始化、条件检查和增量操作将执行 10 次。但是在第二段代码中,内部循环将执行 100 次。因此,初始化、条件检查和增量操作将执行 100 次。所以,它将比第一段代码花费更长的时间。

更新日期: 2019-07-31

402 次浏览

开启您的 职业生涯

完成课程获得认证

开始
广告