Prefiero la menor definición formal posible y las matemáticas
La complejidad temporal de un algoritmo cuantifica la cantidad de tiempo que tarda un algoritmo en ejecutarse en función del tamaño de la entrada al problema. La complejidad de tiempo de un algoritmo se expresa comúnmente usando notación O grande, que suprime las constantes multiplicativas y los términos de orden inferior.
Prefiero la menor definición formal posible y las matemáticas
¿Cuál es la forma más concisa y eficiente de averiguar si una matriz de JavaScript contiene un valor? Esta es la única forma en que sé hacerlo: function contains(a, obj) { for (var i = 0; i < a.length; i++) { if (a[i] === obj) { return true; } } return false; } ¿Hay una manera mejor y...
Estoy aprendiendo sobre los tiempos de ejecución de Big O Notation y los tiempos amortizados. Entiendo la noción de tiempo lineal O (n) , lo que significa que el tamaño de la entrada afecta el crecimiento del algoritmo proporcionalmente ... y lo mismo ocurre, por ejemplo, con el tiempo cuadrático O...
El Proyecto Euler y otros concursos de codificación a menudo tienen un tiempo máximo para ejecutarse o las personas se jactan de lo rápido que se ejecuta su solución particular. Con Python, a veces los enfoques son un tanto torpes, es decir, agregar código de tiempo a __main__. ¿Cuál es una buena...
La pregunta ¿Cómo encontrar la complejidad temporal de un algoritmo? ¿Qué he hecho antes de publicar una pregunta en SO? He pasado por esto , este y muchos otros enlaces Pero en ningún lugar pude encontrar una explicación clara y directa sobre cómo calcular la complejidad del tiempo. Que sé yo...
Dado que las cadenas son inmutables en .NET, me pregunto por qué se han diseñado de manera que string.Substring()lleve tiempo O ( substring.Length), en lugar de hacerlo O(1). es decir, ¿cuáles fueron las compensaciones, si hubo
Entiendo la notación Big-O, pero no sé cómo calcularla para muchas funciones. En particular, he estado tratando de descubrir la complejidad computacional de la versión ingenua de la secuencia de Fibonacci: int Fibonacci(int n) { if (n <= 1) return n; else return Fibonacci(n - 1) +...
¿Cuál es la diferencia entre Big-O notación O(n)y pequeño-O notación
¿Hay algún caso en el que prefiera la O(log n)complejidad del O(1)tiempo a la complejidad del tiempo? O O(n)para O(log n)? ¿Tienes algún
Los recursos que he encontrado sobre la complejidad del tiempo no tienen claro cuándo está bien ignorar los términos en una ecuación de complejidad del tiempo, específicamente con ejemplos no polinómicos. Para mí está claro que dada algo de la forma n 2 + n + 1, los dos últimos términos son...
He visto algunas afirmaciones interesantes sobre los hashmaps SO re Java y su O(1)tiempo de búsqueda. ¿Alguien puede explicar por qué esto es así? A menos que estos hashmaps sean muy diferentes de cualquiera de los algoritmos de hash que compré, siempre debe existir un conjunto de datos que...
Escuché a alguien decir que dado que la búsqueda binaria reduce a la mitad la entrada requerida para buscar, por lo tanto, es el algoritmo log (n). Como no soy de un entorno matemático, no puedo relacionarme con él. ¿Alguien puede explicarlo con un poco más de detalle? ¿Tiene que ver algo con la...
El algoritmo básico para 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 Entonces pensaría que la complejidad del tiempo sería: v1 + (incident edges) + v2 + (incident edges) +...
Supongamos que se nos da una matriz de n enteros que representan los precios de las acciones en un solo día. Queremos encontrar un par (buyDay, sellDay) , con buyDay ≤ sellDay , de modo que si compramos las acciones en buyDay y las vendemos en sellDay , maximicemos nuestras ganancias. Claramente,...
¿Cuáles son algunos algoritmos que usamos a diario que tienen complejidades O (1), O (n log n) y O (log
Mi conocimiento de big-O es limitado, y cuando aparecen términos logarítmicos en la ecuación, me desconcierta aún más. ¿Puede alguien explicarme en términos simples qué es un O(log n)algoritmo? ¿De dónde viene el logaritmo? Esto surgió específicamente cuando estaba tratando de resolver esta...
Las matrices en JavaScript son muy fáciles de modificar agregando y eliminando elementos. De alguna manera enmascara el hecho de que la mayoría de las matrices de idiomas son de tamaño fijo y requieren operaciones complejas para cambiar su tamaño. Parece que JavaScript facilita la escritura de...
Esta pregunta anterior aborda algunos de los factores que pueden causar que un algoritmo tenga una complejidad O (log n). ¿Qué haría que un algoritmo tuviera complejidad de tiempo O (log log
¿Qué es el tiempo pseudopolinomial ? ¿En qué se diferencia del tiempo polinomial? Algunos algoritmos que se ejecutan en tiempo pseudopolinomial tienen tiempos de ejecución como O (nW) (para el problema de la mochila 0/1 ) o O (√n) (para la división de prueba ); ¿Por qué eso no cuenta como tiempo...
Estoy teniendo dificultades para decidir cuál es la complejidad temporal del algoritmo de mayor denominador común de Euclides. Este algoritmo en pseudocódigo es: function gcd(a, b) while b ≠ 0 t := b b := a mod b a := t return a Parece que depender de una y b . Mi pensamiento es que la...