Эффективность алгоритма бинарного поиска элемента в массиве
Имеется функция для поиска заданного элемента в массиве, высчитываю время работы алгоритма вот так:
unsigned int start_1 = clock();
result = searchElementForSortMassiv(arrayForSearch, size_array, needNumber);
unsigned int end_1 = clock();
cout << "Время работы алгоритма поиска:";
cout << "Completed for " << (double)(end_1 - start_1) / CLOCKS_PER_SEC << " second" << endl;
При любой размерности массив выдаёт результат "0 секунд", разве может такое быть? При линейном поиске время работы алгоритма считается нормально.
template <class T>
int searchElementForSortMassiv(T* array, int length_array, int needNumber) {
int left = 0;
int right = length_array - 1;
int mid;
bool flag =false;
while ((left <= right) && (flag != true)) {
mid = ((left + right) / 2);
if (array[mid] == needNumber) {
flag = true;
} else
if (array[mid] < needNumber) {
left = mid + 1;
}
else right= mid - 1;
}
if (flag == true) return mid;
else return -1;
}