嵌套循环难题?
在本部分,我们将介绍一个有趣的难题。我们将看到两段代码段。两者都有两个嵌套循环。我们必须确定哪一个运行得更快。(我们将假设编译器不优化代码)。
代码段 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 次。所以,它将比第一段代码花费更长的时间。
广告