Mi pregunta es, ¿cuándo puedo decir que sé cuánto tiempo lleva un algoritmo y qué tan seguro puedo estar?

Esto no suena como una pregunta de gramática, esta es una pregunta de informática. Afortunadamente, tengo un título en ciencias de la computación, por lo que puedo responder de todos modos.

Usted mide cuánto tiempo tarda un algoritmo en la cantidad de operaciones que necesita realizar, y puede probarlo con lógica inductiva. Contar cuántas operaciones hay no es particularmente útil, ya que a menudo no sabes exactamente cuántas hay, y puede cambiar rápidamente dependiendo del tamaño de la entrada, por lo que generalmente describimos el tiempo de ejecución de un algoritmo en términos de cómo El tamaño de la entrada cambia el tiempo de ejecución. Hagamos un ejemplo.

Digamos que tenemos el siguiente algoritmo para una ordenación de inserción no in situ.


ordenar (A)

1.para i = 1 a la longitud (A)

2. min = mínimo (A)

3. B [i] = min

4.endfor

5.retorno B


Lo que hace este algoritmo es encontrar el elemento más pequeño en la lista de entrada A, y ponerlo al comienzo de la lista B, luego encuentra el siguiente elemento más pequeño y coloca el segundo, y así sucesivamente.

Si N es la longitud de la lista A,

la línea 1 correrá N veces

la línea 2 deberá verificar cada elemento de la lista para encontrar el más pequeño, por lo que tomará N tiempo para ejecutarse, pero también se ejecutará N veces, por lo que costará un total de N ^ 2 veces

la línea 3 correrá N veces

la línea 4 se ejecutará una vez

la línea 5 se ejecutará una vez

Así que ahora podemos agregar todos estos elementos, y encontramos que este algoritmo tardará N ^ 2 + 2N + 2 en ejecutarse. Como cuando N es mayor que 2, el término más grande en la expresión será N ^ 2 con mucho, definimos el tiempo de ejecución de este algoritmo en términos de N ^ 2. La taquigrafía para esto es O (n ^ 2). ¿Puedes inventar un algoritmo de clasificación que funcione más rápido? (pista: es totalmente posible)

More Interesting

Quiero tocar música y ser increíblemente musical, pero aún no tengo forma de hacerlo, ¿de qué maneras puedo mejorar mis habilidades musicales sin un instrumento?

Quiero construir una moto en mi patio trasero. ¿Qué necesitaría, en términos de recursos? ¿Cuanto tiempo tardaría?

Compré un pez azul morph y murió en solo 3 días. ¿Cuál podría ser la razón?

Estoy en un lugar miserable tanto profesional como personalmente. No tengo amigos. ¿Qué tengo que hacer?

Mi niñera quiere que mi hermana y yo tengamos su casa, pero necesitará algo de dinero de la venta para pagar parte de su cuidado. ¿Cómo podemos evitar el impuesto de sucesiones?

Actualmente soy estudiante en la Universidad de Michigan con especialización en Ciencias de la Computación. ¿Cuáles son mis posibilidades de ingresar al programa de maestría CS de Cal?

Como medir mi inteligencia emocional

Mi papá y yo tuvimos una discusión sobre política; Dijo que los conservadores quieren que Estados Unidos sea fuerte y que los liberales quieren destruir el país. ¿Cómo respondo a esto?

Tengo un flujo continuo de datos del archivo de registro de una máquina. El registro contiene diferentes eventos y ocurrencias de falla de la máquina en varios puntos en el tiempo. Necesito desarrollar un modelo (no necesariamente de aprendizaje automático) que pueda predecir fallas futuras. ¿Alguno de ustedes tiene experiencia en el análisis de archivos de registro?

¿Me equivoco al creer que Martin Luther King votaría por Trump si todavía estuviera vivo hoy?