#include <iostream>
#include <vector>
#include <ctime>
#include <cstdlib>
using namespace std;
bool linearSearch(std::vector<int>&primes, int number, int range) {
for (int i = 0; i < range; i++) {
if (primes[i] == number)
return true;
}
return false;
}
void timeLinearSearch(std::vector<int>& primes) {
clock_t start, stop;
size_t NRND = 15000; // 15000 primes per clock
for (int N = 50000; N <= 100000; N += 50000) // increase by 50k each iteration
{
for (int repeat = 0; repeat < 5; repeat++) {
start = clock();
int count = 0;
for (int j = 0; j < NRND; j++) {
count += linearSearch(primes, rand(), N);
}
stop = clock();
std::cout << stop - start << ", " << N << " " << count << std::endl;
}
}
}
int main() {
vector<int> v;
for (int i = 0 ; i != 600000 ; i++) {
v.push_back(rand());
}
timeLinearSearch(v);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8Y3RpbWU+CiNpbmNsdWRlIDxjc3RkbGliPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBsaW5lYXJTZWFyY2goc3RkOjp2ZWN0b3I8aW50PiZwcmltZXMsIGludCBudW1iZXIsIGludCByYW5nZSkgewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYW5nZTsgaSsrKSB7CiAgICAgICAgaWYgKHByaW1lc1tpXSA9PSBudW1iZXIpCiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgcmV0dXJuIGZhbHNlOwp9CgoKdm9pZCB0aW1lTGluZWFyU2VhcmNoKHN0ZDo6dmVjdG9yPGludD4mIHByaW1lcykgewogICAgY2xvY2tfdCBzdGFydCwgc3RvcDsKICAgIHNpemVfdCBOUk5EID0gMTUwMDA7ICAgIC8vICAxNTAwMCBwcmltZXMgcGVyIGNsb2NrCgogICAgZm9yIChpbnQgTiA9IDUwMDAwOyBOIDw9IDEwMDAwMDsgTiArPSA1MDAwMCkgICAgLy8gaW5jcmVhc2UgYnkgNTBrIGVhY2ggaXRlcmF0aW9uCiAgICB7CiAgICAgICAgZm9yIChpbnQgcmVwZWF0ID0gMDsgcmVwZWF0IDwgNTsgcmVwZWF0KyspIHsKICAgICAgICAgICAgc3RhcnQgPSBjbG9jaygpOwogICAgICAgICAgICBpbnQgY291bnQgPSAwOwogICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IE5STkQ7IGorKykgewogICAgICAgICAgICAgICAgY291bnQgKz0gbGluZWFyU2VhcmNoKHByaW1lcywgcmFuZCgpLCBOKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBzdG9wID0gY2xvY2soKTsKICAgICAgICAgICAgc3RkOjpjb3V0IDw8IHN0b3AgLSBzdGFydCA8PCAiLCAiIDw8IE4gPDwgIiAiIDw8IGNvdW50IDw8IHN0ZDo6ZW5kbDsKICAgICAgICB9CiAgICB9Cn0KCmludCBtYWluKCkgewoJdmVjdG9yPGludD4gdjsKCWZvciAoaW50IGkgPSAwIDsgaSAhPSA2MDAwMDAgOyBpKyspIHsKCQl2LnB1c2hfYmFjayhyYW5kKCkpOwoJfQoJdGltZUxpbmVhclNlYXJjaCh2KTsKCXJldHVybiAwOwp9
215529, 50000 0
215231, 50000 2
221221, 50000 0
217863, 50000 0
216557, 50000 0
445586, 100000 3
439603, 100000 1
434343, 100000 1
434926, 100000 3
437629, 100000 0