#include #include #include #include using namespace std; const size_t NOT_FOUND = SIZE_MAX; const size_t ARRAY_MAX = 1000000; const int SEARCH_TIMES = 100000; size_t Find(int ary[], size_t size, int key); void FillArray(int ary[], size_t size); void SearchArray(int ary[], size_t size); int main() { int ary[ARRAY_MAX]; size_t size = 32; cout << "Array Size Time in Msec" << endl; while (size <= ARRAY_MAX) { FillArray(ary,size); SearchArray(ary,size); size*= 2; } return 0; } void FillArray(int ary[], size_t size){ size_t pos; for(pos =0; pos < size; pos++) { ary[pos] = rand(); } return; } void SearchArray(int ary[], size_t size){ int i; int notFound =0; int key; auto start = std::chrono::high_resolution_clock::now(); for(i = 0; i < SEARCH_TIMES; i++) { key = rand(); if (NOT_FOUND == Find(ary,size, key)) { notFound ++; } } auto elapsed = std::chrono::high_resolution_clock::now() - start; long long milliseconds = chrono::duration_cast(elapsed).count(); cout << setw(10) << size << setw(15) << milliseconds << endl; return; } size_t Find(int ary[], size_t size, int key) { size_t pos=0; while (pos < size and ary[pos] != key) { pos++; } if (pos == size) { pos = NOT_FOUND; } return pos; }