У меня просто есть простой вопрос: почему большая нотация O отсортированного массива O (log N)? Это будет отсортированный массив.Сортировка массива Big o notation
ответ
Big O обозначение обычно имеет смысл в контексте алгоритма. Какую операцию вы рассматриваете, когда говорите, что обозначение Big O равно O (log n).
Если вы имеете в виду поиск, то это O (log n), потому что вы можете использовать двоичный поиск. Что по существу означает, что вы смотрите на средний элемент вашего массива, и если он больше, чем тот элемент, который вы ищете, вы затем просматриваете большую половину (таким же образом) и наоборот (если вы еще не нашел ваш элемент, конечно). Вы можете прочитать более подробное описание на wikipedia.
На каждом шаге поиска (глядя на средний элемент) вы сокращаете размер массива, который вы должны искать пополам, так как теперь вы можете узнать, на какой стороне среднего элемента должен находиться ваш элемент поиска. Конечно, это работает только с отсортированными массивами. Для не отсортированных массивов единственным алгоритмом поиска, который вы можете использовать, является линейный поиск, где вы просматриваете каждый элемент массива, который будет принимать средние n/2 проверки.
В целом, Big O описывает характеристики времени выполнения алгоритмов, поэтому вы не можете просто спросить, что такое Big O сортированного массива, это должна быть некоторая операция над массивом. Тем не менее, вы можете рассматривать Big O в терминах пространства (памяти), взятого с помощью некоторой структуры данных. В этом случае отсортированный массив по-прежнему занимает O (n) пространство для хранения N элементов.
Вопрос несколько подделка. Сложность не относится к массиву, но фактически к алгоритму, который сортирует массив (я предполагаю, что вы имеете в виду сложность выполнения, а не память).
Так что в зависимости от используемого алгоритма X в O (X) для сортировки массива может сильно отличаться.
Проверьте эти данные для стартера по сложности в целом и в сортировке массивов специальных случаев.
Introduction to algorithm complexity
- 1. Calculate Big O Notation
- 2. C++ - Big-O Notation
- 3. Big O Notation запросов
- 4. Big O notation runtime
- 5. Big O notation - recursion
- 6. Big O Notation Sumation confusion
- 7. Confused on Big-O Notation
- 8. Big O Notation Время Вопрос
- 9. Big O Notation for Algorithm
- 10. Big O Notation - размер ввода
- 11. Big O Notation for Algorithm
- 12. Confused with Big O Notation
- 13. Дискретная математика Big O Notation
- 14. Big-O Notation Exponential time
- 15. Big O Notation - Темп роста
- 16. Big O структуры Notation данных
- 17. Нужна информация о Big O Notation
- 18. Big O Notation of Recusive Functions
- 19. Как определить сложность использования Big-O Notation
- 20. Подсчёт примитивные операции, Big O Notation
- 21. Нахождение Big O Notation Уточнение без функции
- 22. Алгоритм анализа, Big O Notation Домашнее задание
- 23. Big-O Notation: Каков порядок алгоритма?
- 24. Java Stack array - Big O notation
- 25. Big Oh Notation O ((log n)^k) = O (log n)?
- 26. Big-Oh Notation
- 27. Big Oh-Notation Q
- 28. Big-Oh Notation
- 29. Значение Big O нотации
- 30. Big-Oh Notation problem
Как это специфично для java? Или почему упоминать java в заголовке, но не в тегах? – jitter
Какая операция на сортированном массиве вы говорите? Говоря о «большом О», вы должны поговорить об алгоритме, поэтому укажите его. Это вставка? Погляди? Сортировать? Какие? –