最近看到stackoverflow上有这么一个问题,为什么排序后的数组要比未排序数组运行快3倍以上(link) ,里边给出的回答是因为cpu的分支预测器在面对排序后的数组时,预测能更加准确点,相比未排序的数组可以减少预测错误带来的延时,提升了速度。那这种技巧放在oi是否有应用价值?
以及也有回答将if判断
if (data[c] >= 128)
sum += data[c];
改写成了位运算
int t = (data[c] - 128) >> 31;
sum += ~t & data[c];
从而减少判断提升速度。这种技巧放在oi是否也有应用价值?
还是说是我火星了