1 / 18

ALGORITMOS

ALGORITMOS. DIDIER FERNEY GONZALEZ ORTIZ. Definición.

bob
Download Presentation

ALGORITMOS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ALGORITMOS DIDIER FERNEY GONZALEZ ORTIZ

  2. Definición • Conjunto preescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una actividad mediante pasos sucesivos que no generen dudas a quien lo ejecute. Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución

  3. Características • Tiempo secuencial: Un algoritmo funciona en tiempo discretizado –paso a paso–, definiendo así una secuencia de estados "computacionales" por cada entrada válida (la entrada son los datos que se le suministran al algoritmo antes de comenzar). • Exploración acotada: . La transición de un estado al siguiente queda completamente determinada por una descripción fija y finita; es decir, entre cada estado y el siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de términos del estado actual. • Estado abstracto: Cada estado computacional puede ser descrito formalmente utilizando una estructura de primer orden y cada algoritmo es independiente de su implementación (los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de primer orden son invariantes bajo isomorfismo.

  4. Medios de expresión • Diagrama de flujo: Los diagramas de flujo son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para indicar la secuencia de instrucciones y están regidos por ISO. Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a personas ajenas a la computación.

  5. Pseudo código: Pseudo código es la descripción de un algoritmo que asemeja a un lenguaje de programación pero con algunas convenciones del lenguaje natural (de ahí que tenga el prefijo pseudo, que significa falso). Tiene varias ventajas con respecto a los diagramas de flujo, entre las que se destaca el poco espacio que se requiere para representar instrucciones complejas. El pseudo código no está regido por ningún estándar.

  6. Sistemas formales: La teoría de autómatas y la teoría de funciones recursivas proveen modelos matemáticos que formalizan el concepto de algoritmo. Los modelos más comunes son la máquina de Turing, máquina de registro y funciones μ-recursivas. Estos modelos son tan precisos como un lenguaje máquina, careciendo de expresiones coloquiales o ambigüedad, sin embargo se mantienen independientes de cualquier computadora y de cualquier implementación.

  7. Implementación: Muchos algoritmos son ideados para implementarse en un programa. Sin embargo, los algoritmos pueden ser implementados en otros medios, como una red neuronal, un circuito eléctrico o un aparato mecánico y eléctrico. Algunos algoritmos inclusive se diseñan especialmente para implementarse usando lápiz y papel. El algoritmo de multiplicación tradicional, el algoritmo de Euclides, la criba de Erastóstenes y muchas formas de resolver la raíz cuadrada son sólo algunos ejemplos.

  8. Tipos de algoritmos. Existen dos tipos de algoritmos dependiendo de su función. Estos son: • Algoritmo de ordenamiento. • Algoritmo de búsqueda.

  9. Algoritmo de ordenamiento. • Un algoritmo que pone elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida ha de ser una permutación —o reordenamiento— de la entrada que satisfaga la relación de orden dada. Las relaciones de orden más usadas son el orden numérico y el orden lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas para una ejecución rápida. También es útil para poner datos en forma canónica y para generar resultados legibles por humanos.

  10. Clasificación. • según el lugar donde se realice la ordenación • Algoritmos de ordenamiento interno: en la memoria del ordenador. • Algoritmos de ordenamiento externo: en un lugar externo como un disco duro. • Por el tiempo que tardan en realizar la ordenación, dadas entradas ya ordenadas o inversamente ordenadas: • Algoritmos de ordenación natural: Tarda lo mínimo posible cuando la entrada está ordenada. • Algoritmos de ordenación no natural: Tarda lo mínimo posible cuando la entrada está inversamente ordenada.

  11. Algoritmo de búsqueda • Un algoritmo de búsqueda es aquel que está diseñado para localizar un elemento concreto dentro de una estructura de datos. Consiste en solucionar un problema de existencia o no de un elemento determinado en un conjunto finito de elementos, es decir, si el elemento en cuestión pertenece o no a dicho conjunto, además de su localización dentro de éste.

  12. Clases: • Búsqueda secuencial: Se utiliza cuando el contenido del vector no se encuentra o no puede ser ordenado. Consiste en buscar el elemento comparándolo secuencialmente (de ahí su nombre) con cada elemento del array hasta que éste se encuentre, o hasta que se llegue al final del array. La existencia se puede asegurar desde el momento que el elemento es localizado, pero no podemos asegurar la no existencia hasta no haber analizado todos los elementos del array. A continuación se muestra el pseudo código del algoritmo:

  13. Búsqueda binaria (dicotómica): Se utiliza cuando el vector en el que queremos determinar la existencia o no de un elemento está ordenado, o puede estarlo, este algoritmo reduce el tiempo de búsqueda considerablemente, ya que disminuye exponencialmente con el número de iteraciones.

  14. Ejemplos • 1. PROBLEMA: Un estudiante se encuentra en su casa (durmiendo) y debe ir a la universidad (a tomar la clase de programación!!), ¿qué debe hacer el estudiante? • ALGORITMO: • Inicio1 Dormir haga 1 hasta que suene el despertador (o lo llame la mamá). Mirar la hora. • ¿Hay tiempo suficiente?Si hay, entonces     Bañarse.    Vestirse.    Desayunar.Sino,      Vestirse.Cepillarse los dientes.Despedirse de la mamá y el papá. •   ¿Hay tiempo suficiente?Si, Caminar al paradero.Sino, Correr al paradero.Hasta que pase un bus para la universidad haga :    Esperar el bus    Ver a las demás personas que esperan un  bus.Tomar el bus.Mientras no llegue a la universidad haga :     Seguir en el bus.    Pelear mentalmente con el conductor.Timbrar.Bajarse.Entrar a la universidad. Fin

  15. 2. PROBLEMA: Cambiar la rueda pinchada de un automóvil teniendo un gato mecánico en buen estado, una rueda de reemplazo y una llave inglesa. ALGORITMO: InicioPASO 1. Aflojar los tornillos de la rueda pinchada con la llave inglesa.PASO 2.    Ubicar el gato mecánico en su sitio.PASO 3.    Levantar el gato hasta que la rueda pinchada pueda girar libremente.PASO 4.    Quitar los tornillos y la rueda pinchada.PASO 5.    Poner rueda de repuesto y los tornillos.PASO 6.    Bajar el gato hasta que se pueda liberar.PASO 7.    Sacar el gato de su sitio.PASO 8.    Apretar los tornillos con la llave inglesa.Fin

  16. 3. PROBLEMA: Realizar la suma de los números 2448 y 5746. • ALGORITMO: • InicioPASO 1. Colocar los números el primero encima del segundo, de tal manera que las unidades, decenas, centenas, etc., de los números queden alineadas. Trazar una línea debajo del segundo número. • PASO 2.  Empezar por la columna más a la derecha.PASO 3.  Sumar los dígitos de dicha columna. • PASO 4. Si la suma es mayor a 9 anotar un 1 encima de la siguiente columna a la izquierda y anotar debajo de la línea las unidades de la suma. Si no es mayor anotar la suma debajo de la línea. • PASO 5.  Si hay más columnas a la izquierda, pasar a la siguiente columna a la izquierda y volver a 3. • PASO 6.  El número debajo de la línea es la solución.Fin

  17. Desarrolle un algoritmo de la suma comprendida entre los números de 1 a 10

  18. GRACIAS

More Related