【发布时间】:2021-02-14 15:00:42
【问题描述】:
在执行速度方面,第一个循环和第二个循环的速度有什么不同吗?我也在谈论比这个示例更大的数组。
int main()
{
int n = 17;
int posz = 7;
int array[] = {0, 1, 9, 2, 8, 3, 8, 5, 4, 7, 6, 10, 23, 43, 123, 54, 76, 34};
for (int i = 0; i < (n / 2) + 1; i++)
{
if (array[i] == posz || array[n - 1 - i] == posz)
{
std::cout << "found\n";
break;
}
}
for (int i = 0; i < n; i++)
{
if (array[i] == posz)
{
std::cout << "found\n";
break;
}
}
return 0;
}
【问题讨论】:
-
我对此表示怀疑。我猜选项 1 更慢(更多操作)。如果我在代码审查中看到选项 1,您将把它重写为选项 2,因为它更清晰:-)
-
如果方法 1 更快,
std::find算法函数的实现者会想办法这样编写循环。