Algoritmos y estructuras de datos.
Representar información es fundamental para la informática. El propósito principal de la mayoría de los programas de computadora no es realizar cálculos, sino almacenar y recuperar información, por lo general lo más rápido posible. Por esta razón, el estudio de las estructuras de datos y los algoritmos que los manipulan está en el centro de la informática.
ALGORITMO. Mucho antes de escribir código para solucionar un problema, debemos pensar en cómo podemos realizar dicha acción. Esto lo podemos hacer con algoritmos, estos mismos nos ayudaran no solo a entender mejor la solución, sino también a diseñar y crear de una manera eficaz esa misma solución. Por lo tanto, podemos decir que un algoritmo es una serie de pasos, es un modelo conceptual para la solución de problemas.
Caracteristicas:
Finito: Un algoritmo debe terminar después de un número finito de pasos y además cada paso debe ser ejecutable en una cantidad finita de tiempo (también en número finito de pasos) en todas las entradas permitidas. Con el fin de establecer una secuencia de pasos como un algoritmo, debe establecerse definido (sin ambigüedad).
Definido: Cada paso de un algoritmo debe ser definido con precisión; la acción que debe llevarse a cabo debe especificarse de forma rigurosa y sin ambigüedad para cada caso.
Dos tipos – Diagrama de flujo, pseudocodigo: Hablar de algoritmos es hablar de pseudocódigo y diagramas de flujo. El pseudocódigo no es más que la representación de la solución en un lenguaje natural para el ser humano, es decir, algo entendible para nosotros mismos y lo podríamos incluso hacer sobre papel y en nuestra lengua materna. Por otra parte, un diagrama de flujo, también es una serie de pasos para resolver un problema, pero la diferencia de este y el pseudocódigo, es que en el diagrama de flujo representaremos gráficamente la solución.
Metodología básica para la construcción de aloritmos:
Aunque el termino algoritmos pudiese sonar intimidante, realmente no lo es. La metodología para la creación/construcción de algoritmos se basa en tres conceptos clave:
Entrada: Son los datos primarios que se requieren para el inicio de los algoritmos.
Proceso: Aquí se procesan los datos de entrada, y que nos servirán para dar solución o respuesta al final de su proceso.
Salida: La salida no es más que la solución del algoritmo, es el resultado de procesar los datos de entrada.
Ejemplo - Para una mejor comprensión, procederé con un ejemplo sencillo:
En este sencillo ejemplo, los datos de entrada es la edad, el proceso es la evaluación de la edad, y la salida es una respuesta según la edad: si es menor que 18 tendremos por mensaje “no eres adulto” si es mayor “eres adulto”.
Recomendado por LinkedIn
* Un algoritmo debe ser eficaz. Esto significa que cada una de las operaciones a realizar en un algoritmo debe ser suficientemente básica para que, en principio, se pueda hacer correctamente y en un tiempo finito, por persona usando en principio lápiz y papel. Si una secuencia de pasos no es finita, entonces tampoco puede ser eficaz.
ESTRUCTURA DE DATOS. Siempre que queremos trabajar con gran cantidad de datos, la organización de esos datos es muy importante. Si esos datos no están organizados de manera efectiva, es muy difícil realizar cualquier tarea en esos datos. Si se organiza eficazmente, entonces cualquier operación se puede realizar fácilmente en esos datos. Por lo tanto, podemos definir a las estructuras de datos como un método de organización eficaz de una gran cantidad de datos para que cualquier operación (añadir, eliminar, buscar) sobre estos datos sea más sencilla y fácil.
Todo lo que pueda almacenar datos puede ser llamado como una estructura de datos, por lo tanto, podemos dividir las estructuras de datos en:
Estructuras primitivas: Son aquellas que guardan valores de tipo primitivo, como, por ejemplo: enteros, de coma flotante, boleanos, cadena etc.
Estructuras de datos complejas (TDA tipo de dato abstracto): se utilizan para almacenar datos interconectados y de gran tamaño. Algunos ejemplos de estructura de datos abstractos son: Lista enlazada, árbol, grafo, pila, cola.
* Tipos:
Esquema:
Todo lo que pueda almacenar datos puede ser llamado como una estructura de datos, por lo tanto, podemos dividir las estructuras de datos en:
Todas estas estructuras de datos nos permiten realizar diferentes operaciones sobre datos.
ALGORITMOS Y ESTRUCTURA DE DATOS.
Un buen algoritmo por lo general viene junto con un conjunto de buenas estructuras de datos que permiten al algoritmo manipular los datos de manera eficiente. La informática enfatiza dos temas importantes: estructuras de datos y algoritmos. Estos temas son importantes porque las opciones que se hacen para las estructuras de datos y algoritmos de un programa afectan el uso de memoria del programa (para las estructuras de datos) y el tiempo de CPU (para los algoritmos que interactúan con esas estructuras de datos). Cuando se elige una estructura de datos o un algoritmo, a veces se descubre una relación inversa entre el uso de memoria y el tiempo de CPU: cuanta menos memoria utiliza una estructura de datos, más tiempo del CPU para esos algoritmos se necesita para procesar los elementos de las estructuras de datos. Además, cuanta más memoria utilice una estructura de datos, menos algoritmos asociados con el tiempo de CPU necesitará procesar de esa estructura de datos, y se obtendrán resultados más rápidos.