Estructura de datos (descripción C) algoritmo tiempo y complejidad espacial

Algoritmo: un algoritmo es un conjunto limitado de reglas, una serie de operaciones prescritas para resolver un problema específico.
característica:

1.有限性:有限步骤内正常结束,不能形成无穷循环
2.确定性:算法中的每一个步骤必须有确定含义,无二义性
3.可行性:原则上能精确进行,操作可通过已经实现的基本运算执行有限次而完成
4.输入:有多个或0个输入
5.输出:至少有一个或多个输出

Requerimientos de diseño

正确性
可读性
健壮性(鲁棒性)
高效率和低储存量

Tiempo de ejecución del algoritmo: el tiempo de ejecución de un algoritmo se refiere a la suma del tiempo de ejecución de todas las declaraciones en el algoritmo. El tiempo de ejecución de cada declaración es igual al número de ejecuciones de la declaración multiplicado por el tiempo real requerido para una ejecución;
frecuencia de la declaración: la declaración está en El número de ejecuciones repetidas en un algoritmo, el consumo de tiempo de un algoritmo es la suma de la frecuencia de todas las oraciones en el algoritmo;

Complejidad temporal:
para el análisis de algoritmos, la preocupación es que el número total de ejecuciones de oraciones en el algoritmo f (n) es una función del tamaño del problema n, y luego analizar el cambio de f (n) con n y determinar el orden de magnitud de T (n); aquí Utilice "O" para representar el orden de magnitud y la complejidad temporal del algoritmo T (n) = O (f (n));
en el análisis del algoritmo, la complejidad temporal y la complejidad temporal progresiva del algoritmo suelen ser indistinguibles; el
peor de los casos La próxima vez se denomina la peor complejidad de tiempo en términos de complejidad .
La complejidad del tiempo promedio se refiere al tiempo de ejecución esperado del algoritmo cuando todas las instancias de entrada posibles aparecen con la misma probabilidad;

Recuento de frecuencia de complejidad de tiempo de uso común (organizado en número creciente):

O(1)常数阶
O(log2n)对数阶
O(n)线性阶
O(nlog2n)线性对数阶
O(n^2)平方阶
O(n^3)立方阶
O(n^k)K次方阶
O(2n)指数阶

Complejidad del espacio:
el espacio ocupado por un algoritmo se refiere a la suma del espacio auxiliar realmente ocupado por el algoritmo. La complejidad espacial del algoritmo S (n) se define como el orden de magnitud del espacio de almacenamiento consumido por el algoritmo, que es función del tamaño del problema n,
S (n) = O (f (n))
si el espacio auxiliar requerido para la ejecución del algoritmo En relación con la cantidad de datos de entrada, es una constante, por lo que este algoritmo se denomina trabajo in situ y el espacio auxiliar es O (1);

Ejemplos:
1) O (1) orden constanteInserte la descripción de la imagen aquí
Para la estructura de rama, no importa cuántas oraciones haya (no en el ciclo), su complejidad de tiempo es O (1);

2) O (log2n) orden logarítmico
Primero, revisemos la fórmula, creo que muchas personas han olvidado
a ^ y = x → y = log (a) (x) [La fórmula significa que y = log se basa en a x Logaritmo, donde a es la base y x es el número verdadero. Además, a es mayor que 0, a no es igual a 1 y x es mayor que 0]
Inserte la descripción de la imagen aquí

La complejidad temporal de la búsqueda binaria es O (log2n), si una comparación puede lograr k divisiones iguales (es decir, k-1 se excluyen otras longitudes iguales), la complejidad temporal es O (logkn) y el orden de complejidad es el mismo.

3) O (n) orden lineal es
Inserte la descripción de la imagen aquí
relativamente simple, está claro que el cuerpo del bucle se ha ejecutado n veces;
4) O (n ^ 2) orden cuadrado
Inserte la descripción de la imagen aquí

Para la declaración de ciclo de pasos, solo se considera el número de ciclo de la declaración en el cuerpo del ciclo. Obviamente, la frecuencia de x ++ es n ^ 2; el
orden cúbico y el orden múltiple son casi iguales, pero el orden superior no tiene un significado práctico, simplemente No considerado

5) O (2n) orden exponencial La
secuencia de Fibonacci es un ejemplo muy obvio
Inserte la descripción de la imagen aquí
. Aquellos que no entienden no necesitan desanimarse. Luego, vaya directamente al portal y al proceso de derivación de la fórmula de la secuencia de Fibonacci: https: //wenku.baidu.com/view/54aa9443a8956bec0975e350.html

Los anteriores son todos ejemplos básicos. También hay algunas preguntas complicadas que simplemente están deformadas, lo cual no es difícil, pero algunas requieren matemáticas. Solo ten cuidado.

Supongo que te gusta

Origin blog.csdn.net/weixin_47160672/article/details/108674504
Recomendado
Clasificación