전체 공개가 - 나는 옆으로, 내가 +=
대 -=
을 테스트하기로 결정 Is x += a quicker than x = x + a?+가 + =보다 빠름 - =?
에 의해 영감을했다. 간단한 테스트 결과 거의 동일하다는 것을 알 수 있습니다. duuuh (k
는, 말, 작은 경우
long long sum = 0;
for (each number in the array)
if (x[j] < k)
sum += x[j];
else
sum -= x[j];
때문에, -=
더 자주 전화를받을 것이다 :
std::vector<int> x;
for (int i = 0 ; i < 10000 ; i++)
x.push_back(rand()%10);
및 전화 +=
및 -=
비례 주어진 번호 : 그럼 난 비슷한 시도). 나는 -=
이라는 더 높은 비율을 가지고 k = 5
이라는 더 높은 비율을 줄 수있는 k = 2
을 시도했는데, 이는 -=
과 +=
과 거의 같은 수를 산출 할 것입니다.
펀치 라인 : -=
을 호출하면 +=
에 전화하는 것보다 약 2 배 빠릅니다. 이 경우 왜 더 효율적인가?
나는 "영감을받는"것이 더 좋다고 생각합니다. – Mysticial
아마도 A + B가 A + (-B) 인 것을 고려하면 A + B에 약간의 이점이 있습니다. – nullpotent
두 단어 : 분기 예측. 힌트 : k = 8 시도하십시오. –