intmain() { // Generate data constunsigned arraySize = 32768; int data[arraySize];
for (unsigned c = 0; c < arraySize; ++c) data[c] = std::rand() % 256;
// !!! With this, the next loop runs faster. std::sort(data, data + arraySize);
// Test clock_t start = clock(); longlong sum = 0; for (unsigned i = 0; i < 100000; ++i) { for (unsigned c = 0; c < arraySize; ++c) { // Primary loop. if (data[c] >= 128) sum += data[c]; } }
publicclassMain { publicstaticvoidmain(String[] args) { // Generate data intarraySize=32768; int data[] = newint[arraySize];
Randomrnd=newRandom(0); for (intc=0; c < arraySize; ++c) data[c] = rnd.nextInt() % 256;
// !!! With this, the next loop runs faster Arrays.sort(data);
// Test longstart= System.nanoTime(); longsum=0; for (inti=0; i < 100000; ++i) { for (intc=0; c < arraySize; ++c) { // Primary loop. if (data[c] >= 128) sum += data[c]; } }
intmain() { constunsigned arraySize = 32768; int data[arraySize];
for (unsigned c = 0; c < arraySize; ++c) data[c] = std::rand() % 256;
//std::sort(data, data + arraySize);
clock_t start = clock(); longlong sum = 0; for (unsigned i = 0; i < 100000; ++i) { for (unsigned c = 0; c < arraySize; ++c) { int t = (data[c] - 128) >> 31; sum += ~t & data[c]; } }