Вы пытаетесь добиться гораздо большей точности, чем вы можете получить от простого числа операций. Чтобы получить точный номер, вам нужно будет учитывать такие вещи, как кеш процессора (линейный поиск, вероятно, немного его использует).
Чтобы получить идею общего назначения, мы можем рассмотреть сложность большого О. (Ожидаемая) сложность сортировки - O (N log N). Сложность двоичного поиска - O (log N), поэтому сложность M бинарных поисков - O (M log N). Общая сложность сортировки, а затем двоичного поиска приблизительно равна O ((N + M) log N).
Для линейного поиска сложность одного поиска - O (N), поэтому сложность поиска M - это O (NM).
Таким образом, для N = 1000, то точка безубыточности должна быть apprxoimately:
(1000 + M) * .log (1000) = 1000 М.
Это примерно: (1000 + M) * 10 = 1000 М.
Если мы отменим константы и разрыва, мы получаем: 1000 + M = 100M, то: (1000 + M)/100 = M
Дистрибуция, мы получаем: 1000/100 + M/100 = M
Вычитания, а затем разделив константы, получает до: 10 = .99M
Водораздельных, мы получаем по существу M = 10.
Таким образом, не обращая внимание различия в постоянных факторах, наша точка безубыточности РЕКОМЕНДУЕМЫХ около 10 поисков.
На реальном процессоре, я бы Угадай Большинство из этих постоянных факторов (прогнозирование ветвей, использование кеша и т. Д.) Имеют тенденцию к линейному поиску в двоичном поиске в некоторой степени (т. Е. Линейный поиск работает с кеш и его ветви очень предсказуемы), поэтому мы ожидаем, что линейный поиск останется быстрее, чем бинарный поиск, до нескольких поисков, чем это, вероятно, по меньшей мере до 20 поисков и, возможно, до 50 или 100 ,
Возможно, есть еще один фактор, который следует учитывать. Для 1000 предметов сортировка Shell-Metzner с приблизительно O (N 1.2) сложность может очень хорошо в конечном итоге несколько быстрее, чем Quicksort. По моему опыту, это часто составляет около 1500-2000 предметов. То есть, если что-то еще более сложно оценить с какой-либо реальной точностью, поэтому я просто собираюсь предположить, что есть хороший шанс, что это немного уменьшит точку безубыточности.