Eficiencia de los Algoritmos

EFICIENCIA DE LOS ALGORITMOS

Empezaremos esta unidad explicando ¿Que es un algoritmo?

Un algoritmo es una secuencia de ordenada y lineal finita de operacion que tienen como fin dar solucion a un problema.

Un algoritmo se puede representar tanto como en diseños o conceptos (notaciones).

El objetivo de esta unidad es poder medir la eficiencia de un algoritmo mediante las propiedades que posee este:

  • Ya sea por su numero de ciclos que posea (ej: IF, ELSE, WHILE, ECT…)
  • Por su numero de variables de entrada que posea.
  • Por su numero de variables de salidas (la idea esperada es poder reutilizar el codigo y no sobrepoblar a el codigo)

Un buen ejemplo para que te empieces a familiarizar con estos conceptos es el siguiente:

  • un cubo rubik.

mesa_cubo_rubik_color

Una forma muy entretenida de poder entender es esta, tratando de encontrar la solucion a este entretenido juego. Tu mente trata de encontrar los pasos o etapas exactos para poder lograr armarlo, encuentras los pasos a seguir lograras el exito.

Ahora entremonos mas en el tema realcionado.

Para aprender mas acerca de el tema de estudio, debemos ver lo siguiente:

¿Como se construye un algoritmo?

  • Sus tecnicas de diseño.

¿Como se expresa un algoritmo?

  • Sus enfoques de los lenguajes de programacion.

¿Como se debe validar un algoritmo?

  • A traves de validacion formal.

¿Como se analizan los algoritmos?

Se pueden medir en relacion a su complejidad computacional, eficiencia, legitividad, usabilidad, etc.

Para analizar un algoritmo se pueden medir mediante la Eficiencia (tiempo de ejecucion (el tamaño y las caracteristicas de las entradas al programa), capacidad de espacio en memoria de las variables(la calidad del codigo generado por el programador)), facibilidad de lectura, mantenimiento, rapidez de codificacion(la rapidez de las instrucciones de la maquina, la complejidad del tiempo del algoritmo).

Y ¿como se puede medir un algoritmo?

 

Se puede medir por la cantidad de instrucciones basicas que se ejecutan en un codigo, ejemplo de instrucciones basicas:

  • Asignacion de escaleras.
  • Lectura o escritura de escaleras.
  • Saltos implicitos o explicitos.
  • Las evaluaciones de las condiciones.
  • Los llamados de las funciones.
  • Etc..

Tambien de pueden medir el orden del calculo de un problema.    Aca te dejaremos una pequeña explicacion de como calcular el orden de un problema.

  • A traves de secuencia de instrucciones (pasos que ingresa el programador al codigo).

Es un registro del procesador de un computador que indica la posición donde está el procesador en su secuencia de instrucciones. Dependiendo de los detalles de la máquina particular, contiene o la dirección de la instrucción que es ejecutada, o la dirección de la próxima instrucción a ser ejecutada. El contador de programa es incrementado automáticamente en cada ciclo de instruccion de tal manera que las instrucciones son leídas en secuencia desde la memoria. Ciertas instrucciones, tales como las bifurcaciones y las llamadas y retornos de subrutinas, interrumpen la secuencia al colocar un nuevo valor en el contador de programa.

  • A traves de decisiones (bifurcaciones que va creando un programador a medida que va resolviendo un problema)
  • A traves de ciclos (ej: while, Dowhile)
  • A traves de recursividad (Un algoritmo recursivo es un algoritmo que expresa la solución de un problema en términos de una llamada a sí mismo. La llamada a sí mismo se conoce como llamada recursiva o recurrente.) un ejemplo a esto son las Torres de Hanoi.

hanoi

Deja un comentario