Articles of tiempo complejidad

¿Cuáles son las complejidades de tiempo de varias estructuras de datos?

Estoy tratando de enumerar las complejidades de tiempo de las operaciones de estructuras de datos comunes como Arrays, Árbol de búsqueda binaria, Heap, Lista enlazada, etc. y especialmente me refiero a Java. Son muy comunes, pero creo que algunos de nosotros no estamos 100% seguros sobre la respuesta exacta. Cualquier ayuda, especialmente referencias, es muy […]

Complejidad del tiempo de un algoritmo recursivo

¿Cómo puedo calcular la complejidad de tiempo de un algoritmo recursivo? int pow1(int x,int n) { if(n==0){ return 1; } else{ return x * pow1(x, n-1); } } int pow2(int x,int n) { if(n==0){ return 1; } else if(n&1){ int p = pow2(x, (n-1)/2) return x * p * p; } else { int p […]

La complejidad del tiempo del algoritmo Sieve of Eratosthenes

De la Wikipedia: La complejidad del algoritmo es O(n(logn)(loglogn)) operaciones de bits. ¿Cómo llegas a eso? Que la complejidad incluye el término loglogn me dice que hay un sqrt(n) alguna parte. Supongamos que estoy ejecutando el tamiz en los primeros 100 números ( n = 100 ), suponiendo que marcar los números como compuesto toma […]

cómo calcular la complejidad de búsqueda binaria

Escuché a alguien decir que dado que la búsqueda binaria reduce a la mitad la entrada requerida para buscar, entonces es el algoritmo de registro (n). Como no soy de origen en matemáticas, no puedo relacionarme con él. ¿Alguien puede explicarlo con un poco más de detalle? ¿Tiene que hacer algo con la serie logarítmica?

Complejidad del tiempo del algoritmo de Euclides

Tengo dificultades para decidir cuál es la complejidad temporal del algoritmo de denominador común más grande de Euclides. Este algoritmo en pseudo-código es: function gcd(a, b) while b ≠ 0 t := b b := a mod b a := t return a Parece depender de a y b . Mi pensamiento es que la […]

Si las cadenas son inmutables en .NET, ¿por qué la subcadena toma O (n) el tiempo?

Dado que las cadenas son inmutables en .NET, me pregunto por qué se han diseñado de forma que string.Substring() tome O ( substring.Length ) en vez de O(1) ? es decir, ¿cuáles fueron las compensaciones, si las hubo?

Dado n puntos en un plano 2D, encuentre la cantidad máxima de puntos que se encuentran en la misma línea recta

A continuación está la solución que estoy tratando de implementar /** * Definition for a point. * class Point { * int x; * int y; * Point() { x = 0; y = 0; } * Point(int a, int b) { x = a; y = b; } * } */ public class Solution […]

¿Ordenar en tiempo lineal?

Dado un conjunto de entrada de n enteros en el rango [0..n ^ 3-1], proporcione un algoritmo de clasificación de tiempo lineal. Esta es una revisión de mi prueba el jueves, y no tengo idea de cómo abordar este problema.

Complejidad del tiempo de ejecución de la tabla hash (insertar, buscar y eliminar)

¿Por qué sigo viendo diferentes complejidades de tiempo de ejecución para estas funciones en una tabla hash? En wiki, la búsqueda y la eliminación son O (n) (pensé que el punto de las tablas hash era tener una búsqueda constante, así que ¿cuál es el punto si la búsqueda es O (n)). En algunas notas […]

¿Por qué las listas de diferencias son más eficientes que la concatenación regular?

Actualmente estoy trabajando en el libro Learn you a haskell en línea, y he llegado a un capítulo donde el autor explica que algunas concatenaciones de listas pueden ser ineficaces: por ejemplo ((((a ++ b) ++ c) ++ d) ++ e) ++ f Es supuestamente ineficiente. La solución que se le ocurre al autor es […]