问题:
有一个数组 a = array (这里有很多元素)。循环遍历数组
for (i=0; i<=count(a); i++)。有什么办法可以加快循环吗?
回答:
1) 将 count(a) 移动到单独的变量中
2) 在循环中从末尾读取数组for (i=count(a); i>=0; i--)
- 在我看来,或者条件是否有错误,如果
<=计数(大于或等于)循环会永远运行吗? - 为什么从末端运行阵列会更快?
问题:
有一个数组 a = array (这里有很多元素)。循环遍历数组
for (i=0; i<=count(a); i++)。有什么办法可以加快循环吗?
回答:
1) 将 count(a) 移动到单独的变量中
2) 在循环中从末尾读取数组for (i=count(a); i>=0; i--)
<=计数(大于或等于)循环会永远运行吗?
首先,它小于或等于,其次,循环不会是永恒的,因为
i您仍然会增加每次迭代,并且以一种或另一种方式满足条件。这里唯一的问题是它会比访问额外元素的执行次数多 1 倍。形式上,从数组的哪一侧从开头或从结尾传递都没有关系。问题是条件检查。每次迭代都满足条件
i <= count,即count每次都执行该函数。在从末尾传递的情况下,count执行一次以分配初始值i。len = count(a)如果你在循环之前把它拿出来并写下条件,i < len那么速度将是一样的。