说明: 本文以stackoverflow上Why is it faster to process a sorted array than an unsorted array?为原型,翻译了问题和高票回答并加入了大量补充说明,方便读者理解。
背景
先来看段c++代码,我们用256的模数随机填充一个固定大小的大数组,然后对数组的一半元素求和:
#include#include#includeint main() { // 随机产生整数,用分区函数填充,以避免出现分桶不均 const unsigned arraySize = 32768; int data[arraySize]; for (unsigned c = 0; c