¿Cómo usamos la función de crecimiento de un algoritmo para determinar su orden?

Esta pregunta es un poco al revés. Supongo que está hablando de la función de crecimiento como (un límite) el tiempo de cálculo basado en la longitud de la entrada.

El algoritmo de clasificación de burbujas es de orden cuadrático (lleva un tiempo proporcional al cuadrado del número de entradas). Cuando uno se da cuenta de que la mayoría de las veces, cada elemento a ordenar debe compararse con una fracción (en la mayoría de las implementaciones, aproximadamente la mitad) de los otros elementos, esto debería ser rápidamente obvio. Determinar el tiempo real utilizado, no solo el orden de dependencia, es mucho más complicado. Uno debe saber el tiempo que usa la máquina para cada operación en el programa, etc.

Si tenemos la función de crecimiento (su terminología, suponiendo mi interpretación), determinar el orden es a menudo álgebra de primer año. Para que el tiempo de ejecución crezca exponencialmente o más rápido en la longitud de la entrada, puede tomar un poco más de matemática, pero si ha tenido suficientes matemáticas para dar sentido a la función en sí misma, determinar el orden debería ser sencillo.

More Interesting

Quiero aprender la estructura de datos y Java, ¿cuál debería aprender primero?

¿Cuál es la diferencia entre estos dos métodos de inicialización de matrices Java?

¿Cuál es la diferencia entre la función de aptitud del algoritmo genético y la función de pérdida del descenso de gradiente?

Cómo definir una estructura de datos de gráfico dinámico en C ++ (un gráfico que tiene un número desconocido de vértices)

¿Qué tipo de operaciones podrían aplicarse sobre un árbol de segmentos?

¿Por qué recibo un error de tiempo de ejecución en la conversión de un árbol binario a un árbol binario enhebrado?

Cómo resolver la pregunta en la descripción a continuación

¿Cuál es la mejor manera de aprender algoritmos de informática?

¿Hay algún recurso donde pueda practicar problemas de programación dinámica según sus tipos?

¿Hay algún proceso o conjunto de preguntas que uno debería hacer al resolver problemas tácticos de ajedrez?

¿Es una matriz que está en un orden ordenado un montón mínimo?

¿Cuál es la complejidad del algoritmo de Horner si encontramos P (x) calculando cada término del polinomio desde cero?

¿Debería centrarme en el aprendizaje de algoritmos y estructuras de datos en profundidad, o aprender una habilidad como desarrollo web o desarrollo móvil usando Nanodegree?

¿Qué temas de geometría y álgebra son importantes para concursos de programación como ICPC?

Cuando aumentamos la cantidad de datos de entrenamiento en el algoritmo KNN, ¿por qué se reduce la tasa de error?