Apreciará que el tiempo de complejidad del algoritmo, O (1), O (n), O (log2N), O (n ^ 2)

La complejidad del algoritmo se divide en complejidad en tiempo y espacio complejidad , tanto buenas como malas código es también una medida de dos indicadores clave:

  • complejidad del tiempo: medios realiza un esfuerzo computacional requiere algoritmo;
  • Entre Complejidad: se refiere a la aplicación de este algoritmo de espacio de memoria necesario.

¿Qué parte de los recursos de cómputo requerido refleja la complejidad del algoritmo se ejecuta el algoritmo, los recursos informáticos más importantes son el tiempo y el espacio (es decir, registro) los recursos, la complejidad en el tiempo y la complejidad espacial.

1. comprensión conceptual

1.1 tiempos de ejecución básicas: T (n)

Debido al entorno de funcionamiento y tamaño de entrada, la ejecución de código de tiempo absoluto es incalculable, pero podemos estimar el número de la ejecución de código básico.

Generalmente, la operación básica algoritmo se realiza repetidamente un número de veces en función del tamaño del problema n, esta función se utiliza para expresar el tiempo relativo, se puede escribir como T (n).

1.2 tiempo complejidad: O (n)

Desde la aplicación de las reglas de incertidumbre (artículos enumerados a continuación en las cuatro posibles), por lo que T (n) no es suficiente para analizar y comparar el período de ejecución de código de tiempo, no es la complejidad de tiempo progresivos conceptos (asintótica tiempo de complejidad), el funcionario se define como sigue:

Si existe una función f (n), tal que cuando n se aproxima al infinito, T (n) / f (n) no es igual al constante límite de cero, llamado f (n) es T (n) es una función del mismo orden . Denotado por T (n) = O (f (n)), dijo O (f (n)) es una complejidad de tiempo progresiva del algoritmo, abreviatura: complejidad de tiempo.

tiempo complejidad asintótica con una "O" mayúscula se representa, también se le conoce notación O grande.

Hay cálculo complejidad O (1), O (n), O (log n), O (nlogn), O (n ^ 2) concepto, que es el tiempo y la complejidad espacial del algoritmo de la fig.

No sólo se utiliza para indicar la complejidad del tiempo también se utiliza para la complejidad del espacio .

O paréntesis detrás una función que indica la relación entre el espacio de datos / consumo de tiempo de incremento de un algoritmo. Donde n representa la cantidad de datos de entrada .

1.3 la complejidad espacial: S (n)

Del mismo modo la complejidad del tiempo, la medida de complejidad espacial se refiere al espacio de almacenamiento requerido cuando se ejecuta el algoritmo dentro de un ordenador, denominado: S (n) = O (f (n)).

Mencionado anteriormente, O (n) Tiempo de complejidad no sólo se utiliza para representar, también es utilizado para la complejidad espacial.

2. análisis de la escena:

Esta es la complejidad de tiempo para el análisis de la escena, el orden de tiempo de complejidad: O (1) <O ( log2N) <O (n) <O (n ^ 2)

. Escena 1: T (n-) O = (. 1)

Representa el tiempo de ejecución del algoritmo es una constante, que es el mínimo de tiempo y la complejidad espacial, que es nada que ver el consumo de tiempo / espacio y el tamaño de los datos de entrada, independientemente de los datos de entrada aumenta muchas veces, el consumo de tiempo / espacio son los mismos.

algoritmo de hash es una complejidad en tiempo de O típica (1), no importa lo que los datos de tamaño, se puede encontrar el destino después de un cálculo (sin tener en cuenta el conflicto de las palabras).

Escena 2: T (n-) = O (log2N)

Cuando se aumenta la datos n veces, consumiendo el aumento de log n veces (logaritmo en base 2 está aquí, por ejemplo, cuando los datos se aumenta 256 veces, 8 veces consumiendo sólo aumentar, es inferior lineal la complejidad del tiempo).

La búsqueda binaria es O (log n) algoritmo, de encontrar una vez cada media excluye la posibilidad de 256 miradas de datos sólo tiene que encontrar ocho a encontrar el objetivo.

Escena 3:. T (n-) = O (n-)

Se indica que el algoritmo es un algoritmo lineal, varias veces la cantidad de datos aumenta, el consumo de los aumentos varias veces.

Tal como común para recorrer para encontrar el número más grande dentro de una matriz, debe n variables son escaneados de nuevo, el número de operaciones es n, entonces la complejidad del algoritmo es O (n).

Escena 4:. T (n-) = O (^ n-2)

Se aumentó n veces la cantidad de datos representativos de aumento cuadrado veces consume tiempo n, que es más alta que la complejidad lineal del tiempo.

Por ejemplo ordenamiento de burbuja, es un O típica (n ^ 2) algoritmo, el número n de la clase necesaria para n exploración × n veces.

Tiene una variedad de algoritmos en el mundo de la programación, además de los cuatro escenarios, así como la complejidad del tiempo de muchas formas diferentes, que siga la complejidad del tiempo, de acuerdo con el orden de magnitud se incrementa en orden de prioridad:

orden constante O (1) <de la orden (log2N) <orden lineal O (n) <orden O lineal (nlog2n) de <cuadrada de orden O (n ^ 2) <el orden O cúbico (n ^ 3) <k veces orden O Party (n ^ k) <orden O exponencial (2 ^ n) ......

3. Comparación de algoritmos:

algoritmo de ordenación

  El tiempo promedio

peor de los casos

estabilidad

El espacio adicional

observación

burbuja

 O (n 2)

 O (n 2)

estable

O (1)

n hora mejores

intercambio

  O (n 2)

  O (n 2)

inestable

O (1)

n hora mejores

seleccionar

 O (n 2)

 O (n 2)

inestable

O (1)

n hora mejores

Insertar

 O (n 2)

 O (n 2)

estable

O (1)

Más bien cuando se ordenó

número cardinal

O (log R B)

O (log R B)

estable

O (n)

B es cierto número (0-9),

R es un radix (diez cien)

Cáscara

O (nlogn)

O (n s) 1 <s <2

inestable

O (1)

s se selecciona de paquetes

rápido

O (nlogn)

O (n 2)

inestable

O (nlogn)

n grande mejor

fusión

O (nlogn)

O (nlogn)

estable

O (1)

n grande mejor

montón

O (nlogn)

O (nlogn)

inestable

O (1)

n grande mejor

 

Se extraen algunas estadísticas oficiales, junto con su propia comprensión, tuvimos que crear un blog más completo de la complejidad de la introducción de tiempo, que abarca desde el concepto de extender el principio de que, para resumir el algoritmo, esperamos tener un poco de ayuda .

 

Por favor, permanezca Shaoxia ...ヾ(◍ ° ∇ ° ◍) Tecno ...゙ 
pulgares de bienvenida hacia arriba, comentario, más los intereses, para permitir que más gente vea aprender a ganar
más interesante, por favor preste atención a mis "Los titulares de hoy No ": notas de Java en la nube

Publicados 171 artículos originales · ganado elogios 312 · Vistas de 100.000 +

Supongo que te gusta

Origin blog.csdn.net/weixin_44259720/article/details/104942598
Recomendado
Clasificación