Я изо всех сил пытаюсь обмотать голову, выработав большое количество символов из кода.Big-O Обозначение и кодирование
Я понимаю основные шаги, т.е.
for (int i = 0; i < n; i++)
будет O (п)
И
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
будет O (п)
Я борюсь понять, где и как рассчитать логарифмические значения.
т.е.
Будет:
for (int i = 0; i < n * 2; i++)
быть O (журнал N) или O (п § п) или O (журнал 2n) и т.д.
Может кто-то пожалуйста, продемонстрировать в виде кода в качестве примера и как была сформирована нотация.
Я исследовал и продолжаю получать примеры, когда сортировка касается, и списки измельчаются и т. Д., Что имеет смысл в форме, но я, похоже, не получаю, как применять это код, как указано выше.
Я новичок во всем кодировании и большой нотации.
Я знаком с объектами, классами, циклами, функциями, структурами и т. Д. Я занят изучением C++, поскольку это часть моего курса. Мой учебник не объясняет логарифмические вычисления большого числа очень хорошо или почти полностью.
Ваш вопрос будет, вероятно, получите лучший ответ на http://programmers.stackexchange.com/. – BLaZuRE
Это 'O (n)', так как вы делаете шаги «2n». –
логарифм появляется, когда вы начинаете делить интервал, например. поиск дихотомии; когда вы работаете с сбалансированными деревьями (обрезать левую или правую ветви) и т. д. –