Platzi
Platzi

¡Invierte en ti y celebremos! Adquiere un plan Expert o Expert+ a precio especial.

Antes:$349
$259
Currency
Antes:$349
Ahorras:$90
COMIENZA AHORA
37

Introducción al Análisis de Algoritmos

31194Puntos

hace 4 años

Curso de Algoritmos con C 2017
Curso de Algoritmos con C 2017

Curso de Algoritmos con C 2017

Los algoritmos son fundamentales para crear soluciones efectivas a los problemas a través de la programación. En este curso podrás aprenderlos e integrarlos a tus proyectos utilizando el lenguaje C como herramienta.
analisiDeQue.png

El análisis de algoritmos puede ser un tema difícil de entender. En la mayoría de ocasiones nos mandan de frente a una serie de símbolos y notaciones que no necesariamente son de lo más amigables y sin una buena explicación previa, inclusive pueden generar repulsión al tema. En este BlogPost comenzamos un paso antes, definiendo los conceptos básicos de tiempo de ejecución y hablamos sobre cómo comparar algoritmos. Una vez que tengas esto claro, en otro seguiremos con la notación utilizada, también, estamos a punto de lanzar el Curso de Algoritmos con C al que puedes acceder haciendo click aquí.

¿Sabes qué es el análisis en tiempo de ejecución y de qué depende?

Es el proceso de determinar o calcular cómo se incrementa el tiempo de procesamiento conforme incrementa el tamaño de los datos de entrada, es decir conforme el problema se hace más complejo, aquí vale la pena destacar que el problema podría tener diversos tipos de entradas de datos y te comparto los más comunes para que logremos entender más este punto:

bullets.png

Tenemos la herramienta que es el análisis del tiempo de ejecución, ahora veamos los parámetros con los que mediremos nuestros algoritmos hablemos de 3 ideas:

¿Tiempo que tarda en ejecutarse?

R: No es la métrica ideal, pues los tiempos de ejecución son específicos para una computadora y van a variar según el hardware que tengamos a disposición por poner sólo un ejemplo, un programa se ejecutaría mucho más rápido en un i7 7700hq que en un i7 7600u y eso que son dos CPUs de los más recientes y de modelos “parecidos” imagínate lo complejo que sería tener una medición para tu algoritmos en todos los hardwares, difícil, ¿cierto?

¿Número de instrucciones a ejecutar?

R: Tampoco es una buena medida, pues el número de instrucciones varía según el lenguaje de programación que se esté utilizando y el estilo del programador mismo, por eso no podemos guiarnos únicamente por esta métrica.

¿Entonces cuál es la solución ideal?

R: Las matemáticas tienen una forma de describir diversos fenómenos del día a día como la transferencia de calor entre dos cuerpos (física AKA, matemáticas aplicadas) por poner un ejemplo, y en el estudio de algoritmos también nos ayudan, en este caso al medir el tiempo de ejecución como una función del tamaño de la entrada.

Si quieres aprender más, no dudes en entrar al Curso de Algoritmos con C dónde aprenderás a hacer el análisis y la implementación de los algoritmos más utilizados, en vivo, junto a la increíble comunidad de estudiantes de Platzi.

Curso de Algoritmos con C 2017
Curso de Algoritmos con C 2017

Curso de Algoritmos con C 2017

Los algoritmos son fundamentales para crear soluciones efectivas a los problemas a través de la programación. En este curso podrás aprenderlos e integrarlos a tus proyectos utilizando el lenguaje C como herramienta.
Ricardo
Ricardo
ricardocelis

31194Puntos

hace 4 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
2
39198Puntos

Ricardo, ¿qué te parece estas métricas para comparar el rendimiento de un lenguaje?

https://benchmarksgame.alioth.debian.org/u64q/go.html

4
31194Puntos
4 años

me parecen interesantes, cade destacar que si un mismo programador hace el còdigo y este tiene màs experiencia con un lenguaje que el otro, lo cual es bastante probable ahì ya hay una ligera injusticia jeje

2
39198Puntos
4 años

Una gran observación Ricardo,

Estoy de acuerdo, es un factor a considerar.

Entonces, ¿cómo medir el rendimiento de nuestro algoritmo?

1
39198Puntos
4 años

… y saber que escogimos el lenguaje correcto para el algoritmo?

1
18100Puntos

Esto suena bastante interesante, esperemos a ver que nos depara este nuevo curso de Celis.

0
10056Puntos
4 años

Esta excelente, te lo recomiendo mucho 😃

1
3078Puntos

Ricardo me gusto el articulo muy buena redacción e introducción al tema. En la U, me enseñaron acerca de la complejidad computacional y hacerle análisis a un algoritmo basado en la big O notation. Supongo que en el curso de algoritmos en c trataras esos temas verdad?

0
10056Puntos
4 años

En el curso de habla del tema.

1

El mundo de beakman!! mi programa favorito cuando era niño T.T

1
39198Puntos

Muy interesante Ricardo 😄

1
31194Puntos
4 años

Gracias Osmandi, saludos! y una pregunta vas a tomar el curso?

1
39198Puntos
4 años

¡Por supuesto! Jamás me lo perdería 😄

1
39198Puntos
4 años

Claro que sí Ricardo 😄

Mira que preguntaré bastante jejeje

1
31194Puntos
4 años

eso! yo estaré súper pendiente a todas sus dudas =)

1
39198Puntos
4 años

Excelente! Muchas gracias Ricardo 😄

1
4465Puntos

😶 Woo se escucha muy interesante y creo que para un programador es importante.

1
24094Puntos

Beakman Rulz! (que después reencarnó como Megamente XD)

0
23855Puntos

¿habrá algún tema relacionado sobre cómo determinar una fórmula matemática que establezca qué tan eficiente será un algoritmo u otro? Del tipo ax^2+cx=0 para un algoritmo de girar una imagen 90º… Lo siento, no tengo ese libro a la mano que toca ese tema.

0
893Puntos

Big O notation? estará excelente

0
1627Puntos

Justo estaba buscando informacion de esto!!.

1
31194Puntos
4 años

Excelente y ya se viene el curso =)

0
1627Puntos
4 años

Si! lo tomare!!

0
3986Puntos

Espero mucho de este curso Ricardo! mañana muy atento a la clase en vivo 😃

0
31194Puntos
4 años

excelente! ahí nos vemos =)!

0
3256Puntos

Voy a poner a prueba las tres físicas y los 4 cálculos ( sin contar las veces que los repetí 😛) que ví en la Universidad.

0
31194Puntos
4 años

hey el curso de redes neuronales que tewnemos te hace decir: “entonces sí sirven de mucho las matemáticas”