Чего вам не хватает, так это того, что любые большие кратные значения не имеют значения для Big O. Поэтому мы имеем O (N) = O (N / 2).
Что касается лог-части вопроса, то на самом деле это log 2 (N), а не log 10 (N), поэтому в этом случае log (1000) на самом деле равно 9 ( при округлении вниз). Также, как и прежде, O (log 2 (N)) = O (log 10 (N)), поскольку эти два являются постоянными кратными друг другу. В частности, log 2 (N) = log 10 (N) / log 10 (2)
Последнее, что следует учесть, это то, что, если несколько функций добавляются вместе, функция более низкой степени не имеет значения для Big O. Это потому, что функции более высокой степени растут быстрее, чем функции более низкой степени. Таким образом, мы находим такие вещи, как O (N 3 + N) = O (N 3 ) и O (e N + N 2 + 1) = O (e N ).
Итак, нужно учитывать две вещи: кратность отбрасывания и функцию сброса низкой степени.