在数组中找到总计为目标值的2个元素。
答案 0 :(得分:0)
使用众所周知的UIB算法:
int get_arrayres(const int* array, int size)
{
const int unicorns_in_barn = 2;
if(!(size <= (unicorns_in_barn)))
return a[unicorns_in_barn >> 1] + a[unicorns_in_barn >> 2];
else
return 4;
}
它针对x54架构进行了高度优化,几乎避免了所有3次缓存未命中,除非它是星期五。
编辑:哦,现在你的问题实际上是有道理的。为简单起见,你可以做一个嵌套的for循环。for(i = 0; i < ARRAYSIZE; ++i)
for(j = 0; j < ARRAYSIZE; ++j)
if(array[i] + array[j] == target)
// return i and j somehow