ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Algoritmos


Enviado por   •  27 de Diciembre de 2012  •  11.644 Palabras (47 Páginas)  •  332 Visitas

Página 1 de 47

La idea de seleccionar el mejor algoritmo entre un grupo mayor o menor de variantes posibles, es relativa. Los principiantes suelen irse por la vía del que menor cantidad de pasos tiene, buscando una mayor velocidad de ejecución. Este aspecto aunque importante, no es el único a tener en cuenta, además se puede afirmar que no siempre el más pequeño es el más rápido. En computación existe una regla que se cumple generalmente y es que cuando se ahorra tiempo se gasta más espacio y viceversa.

? Ilustremos esta afirmación a través de un ejemplo. Se muestran dos fragmentos de programas elaborados en el lenguaje de programación Turbo Pascal, los cuales realizan un cálculo con 100 valores diferentes:

Monografias.com

Podemos apreciar que el fragmento B duplica al A (en cuanto a la cantidad de líneas), sin embargo se ejecuta mucho más rápido ya que calcula 800*A y 20*B una sola vez en lugar de las 100 que lo hace el fragmento A.

No obstante, a continuación se relacionan algunos consejos muy útiles y que de modo general nos permitirán encontrar sino el mejor, al menos un buen algoritmo de solución:

Escoger uno que no sea ni muy grande ni muy lento.

Que sea claro y se puedan entender fácilmente las operaciones que se realicen (no se puede olvidar que más tarde tendremos nosotros mismos que darle mantenimiento a estos algoritmos).

Escoger uno que dé el resultado correcto (criterio este considerado como el único que tiene que cumplirse de forma absoluta).

Si después de la selección, encontramos varios algoritmos que cumplen los puntos anteriores y tenemos dudas de cual elegir, podemos hacer lo siguiente: los ponemos a trabajar (entiéndase esto por entrarle valores a los datos primarios y evaluar los datos finales o de salida) a todos bajo situaciones similares a las que realmente se enfrentará el que nosotros determinemos. Durante esta prueba pasaremos a medir las características cuantitativas y evaluar las cualitativas de cada uno por separado. Al final de esta tarea, cuando confrontemos los resultados, estaremos mejor preparados para tomar una decisión.

Se nos puede dar el caso también que dentro del conjunto a seleccionar, uno de los algoritmos haya sido confeccionado por nosotros. Es aconsejable aquí acogernos siempre a nuestra creación, incluso aunque esta posea pequeñas desventajas con respecto a los otros. En el caso de que las desventajas fueran muy notables, entonces habría que empezar a pensar en un rediseño de nuestro algoritmo u optar por desechar el nuestro y seleccionar otro mejor.

Es recomendable escoger un algoritmo diseñado y confeccionado por nosotros, ya que es una solución que le hemos dado a un problema producto de un estudio y análisis realizado por nosotros mismos. Por lo tanto, a la hora de trabajar con él, de ejecutarlo, o de hacerle pequeñas o grandes modificaciones, vamos a estar más familiarizados y más seguros que si nos encontráramos en presencia de un algoritmo hecho por cualquier otra persona. Si nos viéramos obligados a seleccionar un algoritmo que no haya sido confeccionado por nosotros, debemos estudiarlo a fondo y tratar de entender cual fue el análisis que se hizo. En caso de que podamos interpretar bien cada paso y sepamos el por qué de cada dato usado, habremos aprendido algo y estaríamos en una situación muy parecida a como si lo hubiésemos diseñado nosotros mismos. Muchos programadores hacen de esto una técnica para adquirir experiencia y aumentar sus conocimientos.

Después de leer estos análisis vemos como la selección del mejor algoritmo es relativa y es un criterio que podrá variar mucho dentro de un grupo de diseñadores y programadores.

Características de los algoritmos

La confección de algoritmos es un trabajo de creación. No existen procedimientos estrictos que nos permitan elaborar algún algoritmo necesario. Todo, empezando por la elección de las palabras a utilizar y terminando por la estructura, depende completamente de las capacidades, gustos y habilidades creadoras del individuo. Lógicamente, esta "libertad de creación" presenta un número grande de ventajas y desventajas. No nos detendremos ahora a realizar un análisis detallado de cada una de ellas puesto que este es un tema muy discutido y sobre el cual los criterios difieren mucho. Sólo se expondrán dos ejemplos (una ventaja y una desventaja) donde la balanza de criterios se ha inclinado más a favor que en contra.

1- La falta de procedimientos generales y de reglas a la hora de confeccionar cualquier algoritmo tiene una importante ventaja y es que, todo el que desee puede plantear su solución a un problema determinado sin necesidad de estudiar un lenguaje de programación en específico y sin tener que memorizar una serie de palabras (muchas de ellas llamadas dentro de estos lenguajes como palabras reservadas) y reglas estrictas. Esto permite también que el que confecciona pueda concentrarse más en determinados aspectos del problema a solucionar y no pierda tiempo estructurando su trabajo ni adentrándose en los detalles del lenguaje empleado.

2- Como desventaja notable se plantea la poca (en algunos casos ninguna) universalidad y el muy mal entendimiento del algoritmo creado, o sea que lo que hacen unos muchas veces no lo entienden otros. Para evitar este problema se han desarrollado los llamados lenguajes de descripción de algoritmos.

Los lenguajes de descripción de algoritmos son muy fáciles de aprender ya que se basan en esquemas o símbolos que combinados con palabras y frases del lenguaje natural conforman la secuencia de pasos. Ejemplo de esto tenemos el llamado diagrama de bloques o como también se conoce diagrama de flujos, en el cual se va a representar cada operación con un símbolo diferente (cada uno recibe el nombre de bloque) en cuyo interior van a estar los datos con que se opera. Los bloques están conectados entre sí por flechas que indican el flujo de la ejecución. En el Capítulo III se estudian de forma detallada las características de este lenguaje. Otro ejemplo de lenguaje simbólico lo constituyen los estructugramas. Estos son empleados para describir pequeños módulos puesto que su estructura se complicaría demasiado al tratar de resolver un problema grande. No presentan flechas ni líneas de flujo y todos sus pasos se encierran dentro de un mismo paralelogramo donde son separados según correspondan.

Para resolver problemas largos se han creado lenguajes de descripción que emplean órdenes similares a algún lenguaje de programación de computadoras, pero donde no se siguen todas las rigurosas reglas y además se emplean frases del lenguaje natural. Estos son

...

Descargar como (para miembros actualizados) txt (71 Kb)
Leer 46 páginas más »
Disponible sólo en Clubensayos.com