Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Y ALGORÍTMICA
Tiempo de ejecución de un programa, Notación
O grande
La notación Big O define un límite superior de un algoritmo, limita una
función solo desde arriba. Por ejemplo, considere el caso de la ordenación por
inserción. Se necesita tiempo lineal en el mejor de los casos y tiempo
cuadrático en el peor de los casos. Podemos decir con seguridad que la
complejidad temporal de la ordenación por inserción es O (n ^ 2).
Tenga en cuenta que O (n ^ 2) también cubre el tiempo lineal.
La notación asintótica Big-O nos da la idea del límite superior, que
se describe matemáticamente a continuación:
f (n) = O (g (n)) si existe un entero positivo n0 y una constante positiva c, de modo que f (n) ≤ c . g (n) ∀ n ≥
n0
Básicamente, esta notación asintótica se usa para medir y comparar
los peores escenarios de algoritmos teóricamente. Para cualquier
algoritmo, el análisis Big-O debe ser sencillo siempre que
identifiquemos correctamente las operaciones que dependen de n,
que es el tamaño de entrada.
EnANÁLISIS
casos generales,
DEsolíamos
TIEMPO medirDE y comparar
EJECUCIÓNlas DE
complejidades teóricas del tiempo de ejecución de los algoritmos
ALGORITMOS
para el análisis de rendimiento. El tiempo de ejecución más
rápido posible para cualquier algoritmo es O (1), comúnmente
conocido como tiempo de ejecución constante. En este caso, el
algoritmo siempre tarda la misma cantidad de tiempo en
ejecutarse, independientemente del tamaño de entrada. Este es el
tiempo de ejecución ideal para un algoritmo, pero rara vez se
puede lograr. En casos reales, el rendimiento (tiempo de
ejecución) de un algoritmo depende de n, es decir, el tamaño de
la entrada o la cantidad de operaciones necesarias para cada
elemento de entrada. Los algoritmos se pueden clasificar de la
siguiente manera según el mejor rendimiento (la complejidad del
▪ Un algoritmo logarítmico - O (logn)
El tiempo de ejecución crece logarítmicamente en proporción a
n.
▪ Un algoritmo lineal - O (n)
El tiempo de ejecución crece directamente en proporción a n.
▪ Un algoritmo superlineal - O (nlogn)
El tiempo de ejecución crece en proporción a n.
▪ Un algoritmo polinomial - O (nc)
El tiempo de ejecución crece más rápido que el anterior, todo
basado en n.
▪ Un algoritmo exponencial - O (cn)
El tiempo de ejecución crece incluso más rápido que el algoritmo
polinómico basado en n.
▪ Un algoritmo factorial - O (n!)
El tiempo de ejecución crece más rápido y se vuelve rápidamente
inutilizable incluso
pequeños valores de n.
DONDE, N ES EL TAMAÑO DE ENTRADA Y C ES UNA
CONSTANTE POSITIVA.
Complejidad
del tiempo de
ejecución en
términos de O
grande
Ejemplos algorítmicos de análisis de tiempo
se mencionan a continuación:
de
Algunos de los ejemplos de todos ejecución:
esos tipos de algoritmos (en el peor de los casos)
Al final de este tema, podemos concluir que encontrar un algoritmo que funcione en menos
tiempo de ejecución y que también requiera menos espacio de memoria puede marcar una
gran diferencia en el rendimiento de un algoritmo.
¿Tienes lo que estabas buscando? Aprenda más y sea autosuficiente. Comience a aprender
Data Sructures & Algorithms con la ayuda del curso DSA Self Paced más confiable, y eso