#include <iostream>
#include <iomanip>
#include <ctime>
using namespace std;
// Assumes that value is in the array
int LinearSearch(int *array, int size, int value)
{
if (size <= 1)
return 1;
int i;
for (i = 0; i < size; i++)
if (array[i] == value)
break;
return i + 1;
}
void Shuffle(int *array, int size)
{
for (int i = 0; i < size; i++)
{
int r = rand() % size;
int t = array[i];
array[i] = array[r];
array[r] = t;
}
}
void main(void)
{
const int SIZE = 10000;
int a[SIZE];
srand(time(NULL));
// Generate array
for (int i = 0; i < SIZE; i++)
a[i] = i;
// Mix it up
Shuffle(a, SIZE);
// Search for random numbers (10 sets)
for (int j = 0; j < 10; j++)
{
int total = 0;
int attempts = 1000;
for (i = 0; i < attempts; i++)
total += LinearSearch(a, SIZE, (rand() % SIZE));
cout << j + 1 << ". Average = " << (double)total / (double)attempts << endl;
}
}
Output:
1. Average = 5115.57
2. Average = 5047.94
3. Average = 4915.73
4. Average = 4911.44
5. Average = 4856.43
6. Average = 4920.65
7. Average = 4910.12
8. Average = 4841.81
9. Average = 4860.79
10. Average = 4913.42