Вопросы с тегом «time-complexity»

Временная сложность алгоритма определяет количество времени, затрачиваемого алгоритмом на выполнение, в зависимости от размера входных данных проблемы. Временная сложность алгоритма обычно выражается с использованием нотации большого O, которая подавляет мультипликативные константы и члены более низкого порядка.

4002
Как проверить, содержит ли массив значение в JavaScript?

Какой самый краткий и эффективный способ выяснить, содержит ли массив JavaScript значение? Это единственный способ, которым я знаю, чтобы сделать это: function contains(a, obj) { for (var i = 0; i < a.length; i++) { if (a[i] === obj) { return true; } } return false; } Есть ли лучший и более...

2140
Что O (log n) означает точно?

Я узнаю о времени работы Big O Notation и времени амортизации. Я понимаю понятие O (n) линейного времени, означающего, что размер входных данных влияет на рост алгоритма пропорционально ... и то же самое относится, например, к квадратичному времени O (n 2 ) и т. Д. Даже к алгоритмам такие как...

1283
Как вы можете профилировать скрипт Python?

Project Euler и другие конкурсы по кодированию часто имеют максимальное время для запуска, или люди хвастаются тем, насколько быстро работает их конкретное решение. В Python иногда подходы несколько хитры - например, добавление временного кода в __main__. Как правильно определить, сколько времени...

890
Как найти временную сложность алгоритма

Вопрос Как найти временную сложность алгоритма? Что я сделал, прежде чем опубликовать вопрос о SO? Я прошел через это , это и многие другие ссылки Но не там, где я смог найти четкое и прямое объяснение того, как рассчитать сложность времени. Что я знаю ? Скажем для кода так же просто, как показано...

451
Если строки являются неизменяемыми в .NET, то почему Substring занимает O (n) времени?

Учитывая, что строки являются неизменяемыми в .NET, мне интересно, почему они были разработаны таким образом, что вместо string.Substring()O? substring.Length) Требуется время O(1)? т.е. каковы были компромиссы, если таковые...

331
Вычислительная сложность последовательности Фибоначчи

Я понимаю нотацию Big-O, но не знаю, как рассчитать ее для многих функций. В частности, я пытался выяснить вычислительную сложность наивной версии последовательности Фибоначчи: int Fibonacci(int n) { if (n <= 1) return n; else return Fibonacci(n - 1) + Fibonacci(n - 2); } Какова вычислительная...

178
Являются ли 2 ^ n и n * 2 ^ n одинаковыми по сложности?

Ресурсы, которые я нашел по сложности времени, неясно, когда можно игнорировать термины в уравнении сложности времени, особенно с неполиномиальными примерами. Для меня ясно, что при условии чего-то вида n 2 + n + 1 последние два члена не имеют значения. В частности, с учетом двух категорий, 2 n и n...

159
Является ли Java-хэш-карта действительно O (1)?

Я видел несколько интересных утверждений о SO хэш-картах Java и времени их O(1)поиска. Может кто-нибудь объяснить, почему это так? Если эти хеш-карты не сильно отличаются от любого из алгоритмов хэширования, на которые я был куплен, всегда должен существовать набор данных, содержащий коллизии. В...

144
как рассчитать сложность бинарного поиска

Я слышал, как кто-то сказал, что поскольку бинарный поиск делит пополам входные данные, необходимые для поиска, то это алгоритм log (n). Так как я не имею математического образования, я не могу иметь к нему отношение. Может кто-нибудь объяснить это немного подробнее? это имеет отношение к...

132
Почему временная сложность как DFS, так и BFS O (V + E)

Базовый алгоритм для BFS: set start vertex to visited load it into queue while queue not empty for each edge incident to vertex if its not visited load into queue mark vertex Поэтому я бы подумал, что временная сложность будет такой: v1 + (incident edges) + v2 + (incident edges) + .... + vn +...

123
Максимальная прибыль от одной продажи

Предположим, нам дан массив из n целых чисел, представляющих курсы акций за один день. Мы хотим найти пару (buyDay, sellDay) с buyDay ≤ sellDay , чтобы, если бы мы купили акции в buyDay и продали их в sellDay , мы бы максимизировали нашу прибыль. Очевидно, что существует решение алгоритма за O (n 2...

106
Что может привести к тому, что алгоритм будет иметь сложность O (log n)?

Мои знания о big-O ограничены, и когда в уравнении появляются логарифмические термины, это еще больше меня сбивает. Может ли кто-нибудь объяснить мне простым языком, что такое O(log n)алгоритм? Откуда логарифм? Это особенно актуально, когда я пытался решить этот промежуточный практический вопрос:...

106
Что может привести к тому, что алгоритм будет иметь сложность O (log log n)?

В этом предыдущем вопросе рассматриваются некоторые факторы, которые могут привести к тому, что алгоритм будет иметь сложность O (log n). Что может привести к тому, что алгоритм будет иметь временную сложность O (log log n)?...

105
Большое число массивов JavaScript

Массивы в JavaScript очень легко изменять, добавляя и удаляя элементы. Это несколько маскирует тот факт, что большинство языковых массивов имеют фиксированный размер и требуют сложных операций для изменения размера. Кажется, что JavaScript упрощает написание плохо работающего кода массива. Это...

101
Что такое псевдополиномиальное время? Чем оно отличается от полиномиального времени?

Что такое псевдополиномиальное время ? Чем оно отличается от полиномиального времени? Некоторые алгоритмы, работающие за псевдополиномиальное время, имеют время выполнения, например O (nW) (для задачи о ранце 0/1 ) или O (√n) (для пробного деления ); почему это не считается полиномиальным...

100
Временная сложность алгоритма Евклида

Мне трудно решить, какова временная сложность алгоритма наибольшего общего знаменателя Евклида. Этот алгоритм в псевдокоде: function gcd(a, b) while b ≠ 0 t := b b := a mod b a := t return a Кажется, это зависит от a и b . Я думаю, что временная сложность равна O (a% b). Это правильно? Есть ли...