Algoritmo
Un algoritmo es un conjunto completo de instrucciones paso a paso para completar una tarea, y los computadores deben seguir estas instrucciones exactamente como han sido escritas.
En esta sección, no estarás implementando algún tipo especifico de algoritmo aún, pero serás capaz de expresar algoritmos hablándolos o escribiéndolos y aprender la importancia de definir los algoritmos de forma precisa para que pueda ocurrir el efecto deseado.
Recordando que la computación involucra tomar algún tipo de entrada y luego procesarla para producir alguna salida. Procesar las entradas algunas veces requerirá del uso de un , el cuál es sólo un conjunto de reglas para las operaciones que necesitan ser realizadas, para traducir las entradas en las salidas deseadas.
Los computadores dependen de estos algoritmos para realizar tareas. En muchos casos, múltiples algoritmos diferentes pueden ser usados para lograr el mismo resultado. Sin embargo, en algunos casos, un algoritmo será mas rápido que otro llegando al resultado correcto.
Los algoritmos solo son secuencias de pasos que un computador puede seguir para traducir entradas a salidas. Los Algoritmos pueden ser expresados en inglés o español como una lista detallada de pasos.
Por ejemplo, la tarea de encontrar un nombre (ej., “Mike Smith”) en tu libreta de contactos. Un posible algoritmo (representado en la imagen adjunta), involucra tomar la lista de contactos, abrir la primera página y ver si Mike Smith está en esa página. Repetir esto hasta que encuentres a Mike Smith o llegues al final del libro. Este algoritmo es correcto, si Mike Smith está en la libreta, entonces este algoritmo permitirá exitosamente a alguien, encontrarlo.
Sin embargo, los algoritmos pueden ser evaluados no sólo si son correctos, también por su eficiencia: una medida de que tan bien un algoritmo minimiza el tiempo y esfuerzo necesitado para completarse. El algoritmo de una-página-a-la-vez es correcto, pero no es el mas eficiente. Podríamos mejorar el algoritmo pasando de a dos páginas al tiempo en vez de una, debemos ser cuidadosos ya que podríamos omitir la página con el nombre de Mike Smith, en que punto deberíamos retroceder una página. Pero incluso este algoritmo no es el más eficiente.
Considera, en cambio, cuál podría ser un algoritmo más intuitivo y eficiente. Primero, abrir la mitad de la libreta de contactos, si Mike Smith está en esa página, entonces nuestro algoritmo ha terminado. De otra manera, tomando ventaja de el hecho de que la libreta de contactos está ordenada, nosotros sabremos en cuál mitad del libro Mike Smith estará, si está en la libreta de contactos después de todo. Así, repetimos el proceso hasta que lleguemos a una sola página, la cuál, tiene o no tiene el nombre de Mike Smith.
Este algoritmo es más eficiente que el algoritmo original. Considerando que podría pasar si una libreta de contactos de 500 páginas fuera a duplicarse el próximo año. Usando el algoritmo original, podría tomar 500 pasos más para ir a través de las más de 500 paginas. Sin embargo, usando el segundo algoritmo, solo tomaría un paso adicional cuando busca a través de una libreta del doble del tamaño.
Nótese que nuestros algoritmos han usado varias estructuras de programación, incluyendo , los cuáles repiten los pasos múltiples veces, y las cuáles sólo se ejecutan si alguna declaración es verdadera.
Fuente: edutin.com - Curso "Introducción a la computación"
Comentarios
Publicar un comentario