php complejidad algorítmica y complejidad espacio de tiempo y la complejidad

La complejidad del algoritmo se divide en complejidad del tiempo y la complejidad espacial.
Su efecto:
la complejidad de tiempo de los medios de algoritmo realiza esfuerzo computacional requerida;
la complejidad espacial se refiere al espacio de memoria de ejecución requerido para el algoritmo.
(El número de 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 del espacio).

En términos simples,

complejidad del tiempo se refiere al número de veces que la sentencia se ejecuta
complejidad espacial se refiere al espacio de almacenamiento ocupado por el algoritmo

complejidad del tiempo

执行算法所需的计算工作量。一般来说,计算机算法是问题规模n的函数f(n),算法的时间复杂度也因此记做T(n)=O(f(n));
常见时间复杂度有:常数阶、线性阶、平方阶、立方阶、对数阶、nlog2n阶、指数阶
效率:O(1) > O(log2n)> o(n)> o(nlog2n) > o(n^2) > o(n^3) > o(2^n) > o(n!) > o(n^n) 

otros conceptos

最坏情况:最坏情况时的运行时间,一种保证。如果没有特别说明,说的时间复杂度即为最坏情况的时间复杂度

complejidad momento del cálculo

Ejemplo: Cálculo 1 + 2 + 3 + .... + n, y

$ Suma = 0

for ($ i = 1; $ i <= $ n; $ i ++) {
$ suma + = i $
}

N veces el ciclo se puede ver, la complejidad de tiempo es O (n), es la complejidad de tiempo del programa calcula el número de
instrucciones adicionales

1. Todo constante aditiva para reemplazar todo el tiempo por una constante 1

比如上面的例子中,不管n为多少,计算次数都是3,那么时间复杂度为O(1),而不是O(3) 

2. En la función Ejecutar en el número revisado, conservando sólo la más alta término de orden

比如运算的次数为n^2+1,那么为时间复杂度为o(n^2) 

3. Si existe el más alto orden y no es 1, a continuación, multiplicado por una constante y el elemento eliminado

2n^2+3n+1 ->n^2

¿Por qué eliminar estos valores, vea la figura

Cuando la cantidad calculada grande como el número de la hora original, y la diferencia entre n1 no es demasiado grande, y n 2 de la curva se hace más grande, así que esto es 2 N 2 + 1 con 3N + -> n 2 se estima que es la última n 2 razones, ya 3n + 1 se calcula como el número se hace más grande, sustancialmente insignificante, el otro semejante
orden constante O (1)

prueba de función ($ n) {
echo $ n;
echo $ n;
echo $ n;
}

No importa la cantidad de $ n, ejecutar sólo tres veces, entonces el tiempo de complejidad es O (3), tomada como O (1)
orden lineal O (n)

for ($ i = 1; $ i <= $ n; $ i ++) {
$ suma + = i $
}

orden Nivel (Li) de la fiesta: O (n- 2) / O (n- . 3)

$ suma = 0;
for ($ i = 1; $ i <= $ n; $ i ++) {
for ($ j = 1; $ j <$ n; $ j ++) {
$ suma + = $ j
}
}

两次循环,里面循环执行了n次,外层循环也执行了n次,所以时间复杂度为O(n^2),立方阶一样

orden especial de la plaza: O (n- 2 / n-2 + / 2) -> O (n- 2)

para () {
for () {
..... -----------> n ^ 2
}
}
+
para () {
------------> n
}

                              +

echo $ a + $ b --------------> 1

所以整体上计算次数为n^2+n+1,我们算时间复杂度为O(n^2) 

En el orden de: O (log2N)

Si una potencia de x es igual a N (a> 0, y A no es igual a 1), entonces el número x se llama como un sustrato en una serie de N (logaritmo), denotada por x = Logan. Cuando, un número de base conocido del número, N se llama los números reales. [1]

while ($ n> = 1) {
$ n = $ n / 2;
}

n número de ejecuciones
. 1. 1
2 2
. 3 2

ley:

La primera secuencia de una segunda secuencia de tres cuarto quinto
20 ---------> 10 ----------> 5 --------> 2,5 --- ---->. 1
NN / n-2/2 / n-2/2/2 / n-2/2/2 / ...

All Law: n / (2 ^ m) = 1; necesitamos calcular m, se convierte en n = 2 ^ m, estrellas m = log2N, por lo que la complejidad de tiempo es O (log n) o O (log2N)
complejidad espacial

Algoritmos necesitan consumir espacio en la memoria. A saber S (n) = O (f (n)); que comprende espacio de código de programa ocupada, el espacio ocupado por el espacio de entrada de datos y variables auxiliares ocupado por estos tres aspectos. Cálculo y expresión de la manera similar tiempo la complejidad, generalmente con una complejidad asintótica de la expresada

关于O(1)的问题, O(1)是说数据规模和临时变量数目无关,并不是说仅仅定义一个临时变量。举例:无论数据规模多大,我都定义100个变量,这就叫做数据规模和临时变量数目无关。就是说空间复杂度是O(1)。

cálculo de la complejidad espacio

举例:冒泡排序的元素交换,空间复杂度O(1)
冒泡排序就是两两交换,中间设置临时变量存储交换的值,不管要交换的数据多大,临时变量始终为固定数量

Ordenamiento de burbuja: el $ arr = [1,3,2,4,6,5] a solucionar el problema

Principio: dos números adyacentes se comparan, si el orden inverso intercambiada, de lo contrario no hay intercambio
132465

1 y 3 se comparan primero fija de
132,465

2 y 3 de nuevo en comparación intercambio
123465

3 y 4 compara de nuevo fija de
123,465

4 y 6 compara de nuevo fija de
123,465

5 y 6 de nuevo en comparación intercambio
123456

for ($ i = 0; $ i <= $ n; $ i ++) {
for ($ j = 0; $ j <= $ n; $ j ++) {

if($arr[$j]>$arr[$j+1]){
   $tmp=$arr[$j]; 
  $arr[$j]=$arr[$j+1];
  $arr[$j+1]=$tmp;
}
}

}

Por lo tanto, la complejidad de tiempo es O (n ^ 2), la complejidad espacial es O (1)
algoritmo de ordenación común

冒泡排序、直接插入排序、希尔排序、选择排序、快速排序、对排序、归并排序

Común algoritmo de búsqueda

二分查找、顺序查找

Expansión: función de crecimiento gradual

https://blog.csdn.net/raylee2 ...

Supongo que te gusta

Origin www.cnblogs.com/djwhome/p/12554474.html
Recomendado
Clasificación