// (1)
for (int iter = 1; iter <= VERTEX_SIZE; iter ++) {
if (visit[iter]) continue;
dfs(iter);
}
// (2)
for (int iter = 1; iter <= VERTEX_SIZE; iter ++) {
if (!visit[iter]) {
dfs(iter);
}
}
哪个代码更优化?我只是好奇。
答案 0 :(得分:4)
对于任何甚至是半正式的编译器,这根本不会产生任何影响;生成的机器代码完全相同。如果您仍然想确定,请对其进行基准测试。
选择您最常找到的可读。
答案 1 :(得分:0)
没有区别。选择你认为最好的那个。你用第一种方式编译的每个程序肯定都会以第二种方式工作,并且运行时间也是一样的。
注意:我会使用第二种方式;我认为它更具可读性,我见过的大多数DFS实现(在C ++和pheudocode中)都使用它。