// (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);
}
}
Какой код более оптимизирован? Мне просто интересно об этом.
С любым даже полуприличным компилятором это вообще ничего не изменит; сгенерированный машинный код будет именно так тот же самый. Если вы все еще хотите быть уверенным, сравните это.
Перейти на тот, который вы найдете больше всего удобочитаемый.
Нет никакой разницы. Выберите тот, который вам нравится больше всего. Каждая программа, которую вы компилируете первым способом, определенно будет работать и со вторым, и время выполнения будет таким же.
Замечания: Я бы использовал второй способ; Я думаю, что он более читабелен, и большинство реализаций DFS, которые я когда-либо видел (в C ++ и в pheudocode), использует его.