Coste de un algoritmo

Coste de un algoritmo

Cómo calcular el coste del algoritmo

Resultado: (4+3+2+1=10 pasos en positivo + 4 en negativo). O, en otra forma log(32)+log(16)+log(8)+log(4)+log(2) – 1 =log(32)(1+1/2+1/3+1/4+1/5)-1. Ignora el -1 del final y tu fórmula se convierte en algo así como
parece que tu primera búsqueda de subrangos es también logN (ya que utiliza básicamente el mismo algoritmo que la parte inicial) mientras que tu búsqueda final de subrangos es lineal (iterando sobre cada valor), pero está muy acotada y es una pequeña fracción de N. yo diría que tu algoritmo es aproximadamente c * logN, donde c es un pequeño valor que representa el número de subbúsquedas que estás haciendo, así que O(logN) en general.

Código del algoritmo

Sé que la complejidad del algoritmo es O(n^2). No he podido encontrar una definición específica de la función de coste. ¿Debo incluir las comparaciones en el bucle y la sentencia if como costes? Sería útil si alguien pudiera definir lo que es una función de coste y me ayudara a entender y resolver este problema.
En general hay que calcular todos los operadores con coste 1 (a pesar de que algunos puedan ser internamente complejos como el bucle for). Por ejemplo, para i = 0 … n/2 da coste n/2, tanto para j = 0 … i como si arr[j] > arr[n-i-1] dan coste k=n/2*(n/2-1)/2y los swaps dan coste en el rango k..3k

Cómo calcular la complejidad de un algoritmo

Estoy tratando de resolver un problema en el que necesito encontrar el mínimo coste por paso para llegar desde un nodo de inicio a uno de meta. Creo que este algoritmo existe, pero no puedo encontrar el nombre de este algoritmo. En el caso en el que estoy trabajando sólo hay aristas positivas y podría haber ciclos.
Dijkstra trabaja eligiendo siempre el camino de mínimo coste. Sabemos que mientras los costes del camino no disminuyan a medida que nos movemos en el gráfico (esto es cierto en tu caso), siempre encontraremos la respuesta óptima iterando en orden de menor a mayor coste del camino. Sólo tenemos que modificar la función de coste para que sea el máximo en cada camino y ejecutar Dijkstra.

Cuánto cuesta un algoritmo

Sé que esta declaración verdadera o falsa a continuación es falsa. Ya que Θ(log n) es el coste amortizado. Pero podemos determinar de alguna manera el coste medio a partir de esta pregunta, ¿cómo? Si no es así ¿qué necesitamos para determinar el coste medio?
La pregunta es un poco confusa, sin embargo, porque dice una “secuencia de n operaciones f”. Es posible que la estructura de datos admita otras operaciones que cambien el tiempo que tardaría la operación f y, por tanto, cronometrar una secuencia de operaciones f no te dice necesariamente el coste medio de f si se permiten otras operaciones… pero probablemente el autor de la pregunta no está considerando eso.
El coste amortizado de la operación f es diferente de la media, porque parte del coste amortizado puede ser pagado por otras operaciones. Por tanto, el tiempo que tarda la operación f puede proporcionar una cota inferior a su coste amortizado, pero no dice nada sobre ninguna cota superior.

Entradas relacionadas

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad