Я изучаю алгоритмы, но вычисления, чтобы найти Time Complexity, не так уж и легки для меня, трудно запомнить когда использовать log n, n log n, n^2, n^3, 2n и т. д., мое сомнение заключается в том, как рассматривать эти входные функции при вычислении сложности, является ли их конкретным способом вычисления сложности, например, используя для цикла возьмем эту сложность всегда и так далее ....?Как рассчитать «n» для разных обозначений Big O, Omega, Litle o, Litle omega и Theta Notation
ответ
Log (N): при использовании рекурсии и дерево генерируется использование журнал (п). я имею в виду разделяя и властвуя когда вы ныряете проблемы в 2-половинок на самом деле вы генерирующие рекурсивного дерева.
его сложность Журнал (n), почему? потому что это двоичное дерево в природе и для двоичного дерева, мы используем Log (Base2) (n).
попробуйте себя: предположим, что n = 4 (элементы), поэтому log (base2) (4) = 2, вы разделите его на равную половину.
nLog (n): запомнить Журнал (n) его разделение до одного элемента. после этого вы начинаете слияние отсортированных элементов, которые принимают время лайнера
других слова Объединения элементов имеет сложность «п» так общая сложность будет п (Слияние) + Log (п) (Деление), который, наконец, стал nLog (n).
п^2: , когда вы видите, проблема решается в двух вложенных циклов, то Сложность п^2. i.e Матрицы/2-D массивы, которые они вычисляли в 2 циклах. одна петля внутри внешнего контура.
n^3: oh 3-D массивы, это для 3 вложенных циклов. цикл внутри цикла внутри цикла.
2n: спасибо, что вы не забыли написать «2» с этим «n», иначе я забыл объяснить это.
так «2» здесь с «п» постоянен просто игнорировать его. Зачем ?. потому что, если вы путешествуете в другой город AIR. вы засчитываете только часы, которые выполняете полет, а не часы, потребляемые при достижении порта AIR. Я имею в виду, что это минор, мы удаляем константу.
и «п» просто помните это слово «Linear»Большой т.е.-O (п) линейная сложность. К сожалению, я обнаружил, что нет алгоритма, который сортирует элементы в Линейном времени. т.е. просто в одном цикле (обход одного массива).
Что нужно помнить:
Номинальное время: Линейное время, сложность Big-O (п)
полиномиальное время: Не Линейное время, сложность Big-O [журнал (п), nlog (n), n^2, n^3, n^4, n^5).
Время Экспоненциальный: 2^п, п^п, то есть эта проблема будет решить за экспоненциальное время т.е. N^мощности (п) (Это плохо плохо плохо, не называется алгоритм)
Существует множество ссылок на то, как грубо рассчитать Big O и сложность его брата, но нет истинной формулы.
Однако есть рекомендации, которые помогут вам рассчитать сложность, такую как представленные ниже. Я предлагаю рассмотреть как можно больше различных программ и структур данных, чтобы помочь вам ознакомиться с шаблоном и просто изучить, изучить, изучить, пока не получите его! Есть образец, и вы увидите его, тем больше вы его изучаете.
Источник: http://www.dreamincode.net/forums/topic/125427-determining-big-o-notation/
- Вложенные циклы перемножаются.
- Добавлены последовательные циклы.
- Сохраняется только самый большой термин, все остальные отбрасываются.
- Константы отбрасываются.
- Условные проверки являются постоянными (то есть 1).
- 1. Поиск Big-O, Omega и theta
- 2. Big O, Theta и большая нотация Omega
- 3. Big O, Big Omega, Большой Theta функции
- 4. Предоставление Big O, Big Theta и Big Omega для функции
- 5. алгоритмическая сложность Big O, Little O, Big Omega, Little Omega, Theta
- 6. Big Theta, Big O, Big Omega для данной функции
- 7. Алгоритмы нотации Big O и Big Omega
- 8. Big O vs Small omega
- 9. Big Omega Notation Доказывая
- 10. Доказательство Большой Теты и других асимптотических определений (Big-Theta, Big-Omega, Big-O, little-theta, little-omega)
- 11. Что такое Big O, Theta O, Omega O для следующего кода?
- 12. Алгоритм Big-O (O (n)) и Big-Omega (Ω (n)) алгоритма Count (A, B, n)
- 13. Big-O и Big Omega функции - Домашнее задание
- 14. Как получить Omega (n)
- 15. Big O и Big Omega такие же, но наоборот?
- 16. Big-O и не Little-O подразумевает Theta? Точно так же Big-Omega и не маленькая Омега подразумевают Тету?
- 17. Big Oh, Theta и Omega из следующей функции w/explain?
- 18. Big O как рассчитать n
- 19. Big O Notation запросов
- 20. Calculate Big O Notation
- 21. Big O notation runtime
- 22. Theta vs. Omega
- 23. C++ - Big-O Notation
- 24. Big Oh Notation O ((log n)^k) = O (log n)?
- 25. Алгоритм Big Omega
- 26. Big O notation - recursion
- 27. Big O Notation for Algorithm
- 28. Понятие Big-Ω (Big-Omega) нотация
- 29. Big-O & Big-Theta: является временной сложностью цикла O (1)?
- 30. Big O Notation Sumation confusion
возможно дубликат [Большой O, как вы его вычисляете/приближаете?] (Http://stackoverflow.com/questions/3255/big-o-how-do-you-calculate-approximate-it) – jojo