ALGORITMOS
¿Qué son los algoritmos?
En informática, se llama algoritmo a una secuencia de instrucciones u operaciones
específicas que permiten controlar determinados procesos. Se trata de conjuntos finitos y
ordenados de pasos, que nos conducen a resolver un problema o tomar una decisión.
Por ejemplo, una acción simple y cotidiana como encender la luz de la habitación puede
describirse como un conjunto ordenado de pasos, como son:
      1. ¿La luz está apagada?
      NO: FIN
      SÍ: ve al paso 2
      2. Presiona el interruptor y vuelve al paso 1.
Hoy en día, la presencia de los algoritmos es muy conocida gracias a la automatización
digital. Algoritmos sumamente complejos y especializados controlan el funcionamiento
de las redes sociales y de los buscadores de internet, entre otras piezas de software, para
permitirle al usuario una experiencia personalizada.
Caracteristicas de los algoritmos
Algunas de las características de los algoritmos son:
      Precisión: Un algoritmo debe ser preciso y debe proporcionar resultados correctos
       cada vez que se ejecuta.
      Definición clara: Un algoritmo debe estar bien definido y debe ser comprensible
       para cualquier persona que lo lea.
      Orden: Los pasos de un algoritmo deben seguir una secuencia lógica y deben ser
       fáciles de seguir.
      Finitud: Un algoritmo debe tener un número finito de pasos y debe poder ser
       terminado en un tiempo razonable.
      Eficiencia: Un algoritmo debe ser eficiente y utilizar un uso razonable de los
       recursos computacionales, como la memoria y el tiempo de procesamiento.
      Generalidad: Un algoritmo debe ser general y poder ser aplicado a una amplia
       gama de problemas y situaciones.
      Reutilizabilidad: Un algoritmo debe ser reutilizable y poder ser utilizado varias
       veces para resolver diferentes problemas o realizar diferentes tareas.
Los algoritmos se pueden escribir en cualquier lenguaje de programación y se pueden
ejecutar en una computadora para resolver problemas de manera automática.
Los algoritmos se utilizan en muchas áreas, como la ciencia de la computación, la
matemática, la ingeniería y las ciencias naturales, para resolver problemas y analizar datos.
Los algoritmos deben ser precisos y definidos con claridad, y deben seguir una secuencia
lógica de pasos para poder ser ejecutados de manera eficiente.
Partes de los algoritmos
Adquisición de los datos de entrada
El algoritmo debe disponer de ciertos recursos para poder leer los
valores desde una fuente externa. La mayoría de los algoritmos
requieren de algunos valores de datos para así definir un problema
específico. Por ejemplo, los coeficientes de un polinomio.
Cálculo
El algoritmo debe disponer de ciertos recursos para poder realizar
cálculos      aritméticos,       comparaciones,           comprobar     condiciones
lógicas, etc.
Selección
El algoritmo debe disponer de ciertos medios para poder elegir
entre dos o más cursos de acción posibles, basados en los datos
iniciales, en entradas del usuario y/o en resultados calculados.
Iteración
El algoritmo debe disponer de ciertos medios para poder ejecutar
de forma repetida un conjunto de instrucciones, ya sea por un
número fijo de veces o hasta que se cumpla alguna condición
lógica.
Informe de resultados o salida
El algoritmo debe disponer de ciertos recursos para poder informar
al usuario los resultados que haya calculado, o poder solicitar
datos adicionales del usuario.
Diagrama de flujo
El diagrama de flujo o también diagrama de actividades es una manera de representar
gráficamente un algoritmo o un proceso de alguna naturaleza, a través de una serie de pasos
estructurados y vinculados que permiten su revisión como un todo.
La representación gráfica de estos procesos emplea, en los diagramas de flujo, una serie
determinada de figuras geométricas que representan cada paso puntual del proceso que
está siendo evaluado. Estas formas definidas de antemano se conectan entre sí a través de
flechas y líneas que marcan la dirección del flujo y establecen el recorrido del proceso,
como si de un mapa se tratara.
Hay cuatro tipos de diagrama de flujo en base al modo de su representación:
          Horizontal. Va de derecha a izquierda, según el orden de la lectura.
          Vertical. Va de arriba hacia abajo, como una lista ordenada.
          Panorámico. Permiten ver el proceso entero en una sola hoja, usando el modelo
           vertical y el horizontal.
          Arquitectónico. Representa un itinerario de trabajo o un área de trabajo.
Los diagramas de flujo son un mecanismo de control y descripción de procesos,
que permiten una mayor organización, evaluación o replanteamiento de secuencias de
actividades y procesos de distinta índole, dado que son versátiles y sencillos. Son
empleados a menudo en disciplinas como la programación, la informática, la economía,
las finanzas,   los   procesos         industriales   e   incluso   la psicología cognitiva.
Reglas de los diagramas de flujo
A continuación, se te presentarán aquellas reglas básicas y que debes considerar en la
elaboración de un diagrama de flujo.
De ninguna manera el crear un diagrama de Flujo es complicado. Simplemente hay que
leer detenidamente las reglas, observar su ejemplo y poner en práctica aplicado a
nuestro propio proyecto.
        1. Todos los diagramas de Flujo deberán tener definido un inicio al igual como
            un final.
        2. Considera que todo diagrama de flujo deberá ser desarrollado y escrito de
            arriba hacia abajo y cuando se requiera de la izquierda hacia la derecha.
        3. Las líneas de dirección de flujo pueden ser plasmadas de manera vertical u
            horizontal, respetando que sean líneas rectas.
        4. La notación que se utilice al elaborar el diagrama de flujo debe ser
            independiente de cualquier lenguaje de programación. Esta notación
            permitirá trasladar a otros lenguajes de programación según se requiera.
        5. Todas las líneas de flujo deben estar conectadas con símbolos. De modo que
            ninguna línea deberá estar suelta o libre en un extremo.
        6. Cuando se trate de una tarea compleja, se deberá poner comentarios
            concretos que ayuden a realizar la tarea.
        7. Cuando el diagrama resulte complejo o se necesite de más una hoja para su
            elaboración, se enumeran las páginas, además de emplear el uso de
            conectores adecuados.
        8. Cualquier símbolo determinado, no puede recibir más de una línea de flujo.
4 partes en las que se clasifica un algoritmo
Algoritmos cualitativos
Estos algoritmos son aquellos en los que se colocan elementos verbales. Un ejemplo de este
tipo de algoritmos son las instrucciones o los “paso a paso” que se dan de forma oral.
Tal es el caso de las recetas de cocina o las instrucciones para hacer un trabajo de bricolaje.
Algoritmos cuantitativos
Son lo contrario de los algoritmos cualitativos, porque se colocan elementos numéricos.
Este tipo de algoritmos se utilizan en las matemáticas para realizar cálculos. Por ejemplo,
para encontrar una raíz cuadrada o resolver una ecuación.
Algoritmo computacional
Son los algoritmos que se hacen con una computadora; muchos de estos algoritmos son más
complejos y por eso necesitan ser realizados a través de una máquina. También pueden ser
algoritmos cuantitativos que se optimizan.
Partes en las que se clasifica un algoritmo
ALGORITMOS DE BÚSQUEDA
Se encarga de seleccionar desde una data, elementos específicos que cumplan con un perfil
establecido.
ALGORITMOS DE ORDENAMIENTO
Son instrucciones que enumeran los elementos. Es un algoritmo estricto donde no se puede
saltar de un número a otro, porque el resultado final puede ser diferente al esperado.
PROGRAMACIÓN DINÁMICA
El algoritmo a base de una programación dinámica. Se ocupa de resolver problemas en
colmena. Esto se refiere a la existencia de una dificultad grande que por dentro tiene
diversas complicaciones. Lo que hace este sistema es desglosarlas e ir resolviéndolas por
separado y así disminuir el inconveniente, hasta llegar a la solución completa.
ALGORITMO VORAZ
Se aplica en problemas de optimización, mediante soluciones voraces. Es usado a través de
decisiones lógicas y analiza cada paso como único, para obtener un resultado global. En
este algoritmo se debe tener sumo cuidado, porque luego de implementar un paso no se
puede regresar o corregir.
ALGORITMOS PROBABILÍSTICOS
Son algoritmos aleatorios que dependen de una probabilidad o hipótesis. En algunos casos
el uso surge naturalmente, como las planificaciones a futuro. En este caso no se requiere de
grandes conocimientos, ni operaciones matemáticas.