deda_u1_a2_juvg

8
ESTRUCTURA DE DATOS

Upload: juan-valdez

Post on 17-Jan-2016

4 views

Category:

Documents


0 download

DESCRIPTION

Ensayo corto

TRANSCRIPT

Page 1: DEDA_U1_A2_JUVG

Nombre Facilitador: Angélica Carrasco ZamoraNombre Alumno: Juan L. Valdez GaliciaUnidad Unidad 1Actividad Actividad 2Descripción Identificar la relación entre Algoritmos y Estructura de Datos

ESTRUCTURA DE DATOS

Page 2: DEDA_U1_A2_JUVG

IntroducciónEl manejo de los datos en los sistemas computacionales y en la programación de software, ha requerido desde el inicio de esta disciplina, una forma congruente, no solo de almacenar los datos obtenidos, sino lo más importante, de tener acceso a ellos, ya sea de forma física o de forma virtual.

Podemos ver que se crearon las tarjetas perforadas y los medios magnéticos, vemos los discos duros que almacenan información de forma física por medio de sectores, y los medios actuales que no son magnéticos como las USB que almacenan información de forma física completamente diferente, sin embargo, todos los medios están íntimamente relacionados con la forma y con el método en que el origen de la información hace que se almacene, creando con esto, otra disciplina que se encarga del estudio de las diferentes formas de almacenar los datos y que esta relación esta en relación directa con el uso de los mismos.

La forma de almacenar los datos podemos verla con una analogía con un almacén físico, donde se pueden aplicar diferentes métodos de almacenaje o estructuras de datos, como el método de inventarios LIFO o FIFO para algunos, para otros será necesario utilizar un método cruzado como si fuera una tabla, otro quizá sea ingresando despachadores volviendo a aplicar el LIFO, y otros quizá solo tengan que “colgarse” en diferentes secciones, pero lo que va a determinar la forma de almacenamiento es el dato en sí.

Siguiendo con la analogía del almacén, tenemos que almacenar tres productos diferentes, uno de ellos, son piezas de maquinaria, los otros son envases de líquido y los otros son tambores de lámina, aunado a eso, estas las peticiones de los usuarios del almacén.

Las piezas para maquinaria tienen que ir ordenadas de forma que al momento de buscarlas se pueda hacer una búsqueda cruzada, como por ejemplo, TIPO DE MAQUINA X NUMERO DE PIEZA, estas piezas deberán de estar en un anaquel separado por celdas, donde se encuentre cada una de las piezas, mientras que las botellas al ser contenedores, permitirán hacer PILAS de acuerdo a la capacidad de cada una, pero en un mismo sitio, mientras que los tambores de lámina, será necesario que se acomoden en un mismo lugar, pero con un acceso rápido y fácil para ubicar los que se requieren.

En los requerimientos del uso del almacén, las solicitudes deberán formar una FILA o COLA, para irlas atendiendo conforme vayan llegando, claro, de acuerdo a otros factores, como las políticas empresariales.

Todo lo anterior se ha visto de forma física, no obstante, todo lo anterior, es la base para realizar programas que hagan lo mismo y que utilicen dicho principio.

Las siguientes definiciones nos ayudaran a entender lo anterior.

Page 3: DEDA_U1_A2_JUVG

Que es un algoritmo?Un Algoritmo, se puede definir como una secuencia de instrucciones que representan un modelo de solución para determinado tipo de problemas. O bien como un conjunto de instrucciones que realizadas en orden conducen a obtener la solución de un problema. Por lo tanto podemos decir que es un conjunto ordenado y finito de pasos que nos permite solucionar un problema.

Los algoritmos son independientes de los lenguajes de programación. En cada problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje de diferente programación. El algoritmo es la infraestructura de cualquier solución, escrita luego en cualquier lenguaje de programación. Fte. http://informaticafrida.blogspot.mx/2009/03/algoritmo.html

La definición arriba descrita se centra en dos cosas importantes, SECUENCIA DE PASOS U ORDENES, Y SOLUCION DE PROBLEMA, no especifica qué clase de problema, simplemente nos dice que es una secuencia de pasos para resolver un problema, -en una definición más simple aun, y es que es una realidad, los algoritmos son una “Planificación bien estructurada” para resolver “cualquier tipo de problema”, sorprendería ver cuán funcionales son los algoritmos en los problemas incluso sociales o psicológicos.

El algoritmo se puede realizar de forma gráfica o con un pseudo-lenguaje conocida como PSEUDO-CODIGO, donde la primera se utiliza para definir los pasos mediantes símbolos y la segunda utiliza el denominado pseudo-código que es muy parecido al lenguaje humano.

Los algoritmos pueden ser tan complejos como lo sea el problema a resolver, y de acuerdo al conocimiento, se pueden aplicar los gráficos o los de código, no obstante, al ser un elemento que se utiliza en varios ámbitos de las profesiones, los algoritmos gráficos han ganado terreno, dejando a los algoritmos de código, casi exclusivos para el desarrollador o programador.

Como se dijo anteriormente, los algoritmos no solo nos permiten resolver problemas, sino que también contribuyen a mejorar procesos, dado que al plasmarlos en un papel, el proceso (que finalmente es una actividad) se puede mover, o modificar para que arroje otros resultados.

Page 4: DEDA_U1_A2_JUVG

Que es una estructura de datos?

En programación, una estructura de datos es una forma de organizar un conjunto de datos elementales con el objetivo de facilitar su manipulación. Un dato elemental es la mínima información que se tiene en un sistema.

Una estructura de datos define la organización e interrelación de éstos y un conjunto de operaciones que se pueden realizar sobre ellos. Las operaciones básicas son:

Alta, adicionar un nuevo valor a la estructura.Baja, borrar un valor de la estructura.Búsqueda, encontrar un determinado valor en la estructura para realizar una operación con este valor, en forma SECUENCIAL o BINARIO (siempre y cuando los datos estén ordenados)…

Cada estructura ofrece ventajas y desventajas en relación a la simplicidad y eficiencia para la realización de cada operación. De esta forma, la elección de la estructura de datos apropiada para cada problema depende de factores como la frecuencia y el orden en que se realiza cada operación sobre los datos. Fte: https://josue10.wordpress.com/estructura-de-datos/

La definición que se nos brinda, nos dice en pocas palabras, que la estructura de datos, no es más que un CONJUNTO DE DATOS ORGANIZADOS EN UNA FORMA ESPECIFICA, pero también describe la forma en que se puede acceder a ellos, incluso el tipo de datos que dicha estructura deberá de llevar.

Imaginemos una caja con agujeros con figuras circulares, todos los objetos que sean círculos entraran en esa caja, pero si quisiéramos meter un objeto con la figura de un cuadrado, básicamente sería imposible. Es decir que la estructura de datos define en si misma, el tipo de datos que puede recibir.

Las estructuras no se crean ni se destruyen solo se transforman, esta analogía es porque si bien es cierto que a alguien se le ocurrió la idea de crear PILAS de datos, también otra persona vio que la forma de almacenar datos se podía transformar para crear algo diferente o para darle un uso diferente, cada estructura de datos se transforma para adecuarse a la circunstancia y trae consigo sus reglas de uso.

Por muy compleja que sea la estructura de datos, deberá definir en sus reglas, la inserción, la manipulación y la extracción de datos, de no ser así, no se denominará estructura de datos.

Page 5: DEDA_U1_A2_JUVG

Las tres estructuras de datos más conocidas son:Árboles, listas, colas, pilas, tablas, vectores, registros, conjuntos o diccionarios, ciertamente no son tres, pero se utilizan a discreción y de acuerdo a los datos. Todas las anteriores se resumen al termino abstracto de CONJUNTO, desde mi perspectiva, la diferencia entre cada estructura es la forma en la que se accede a los datos, pero finalmente todas son un CONJUNTO DE DATOS que están almacenados de acuerdo a su naturaleza y al uso (inherente a su naturaleza) que se les da.

Las estructuras más conocidas y utilizadas como tal, son las listas, las pilas, los árboles y las tablas, no obstante no podemos dejar de mencionar que finalmente el tipo de estructura depende mucho del uso que se le dé a los datos, puesto que existen otro tipo de estructuras que no se mencionan y que son de uso particular en algunos sistemas.

Las relaciones entre un algoritmo y una estructura de datos:Como ya se hizo mención, el algoritmo nos define una serie de pasos que debemos hacer para lograr resolver un problema, mientras que la estructura de datos en este punto se plantea como un conjunto de problemas, o mejor dicho, de actividades a resolver.

El algoritmo esta en relación a la estructura con el fin de plasmar en el mismo algoritmo, la FORMA y establecer el METODO para poder hacer cierta actividad dentro de esa estructura de datos; ¿Cuáles actividades? Pueden ser las básicas: guardar, mover o eliminar un dato, el Algoritmo es el encargado de decirnos COMO debemos de hacer todo lo anterior.

El algoritmo puede englobar no solo la forma de hacerlo sino también los elementos condicionantes propios de la estructura de datos, a esto se le denomina: validaciones

Page 6: DEDA_U1_A2_JUVG

CONCLUSIONES

La estructura de datos es parte fundamental de cualquier desarrollo de Software, recordemos que es el almacén de todo lo que se produce o se ocupa para producir, entonces bien, los algoritmos son el medio para definir la forma en la que se podrá acceder a esos almacenes, ya sea desde un programa o por una puerta física.

Cada estructura de datos tiene sus propias reglas, denominadas validaciones, no podemos ingresar un contenido de texto en un campo donde se valor sea numérico, o viceversa, de la misma forma, las estructuras se permiten definir por su naturaleza, la forma en que operaran los datos, como las pilas, que solo permiten extraer el último dato que fue guardado, o las filas, donde el algoritmo tiene que describir el recorrido que hará el SW por toda la fila para encontrar el dato propuesto.

Todo lo anterior nos hace entonces pensar y concluir, que los algoritmos representan el método para llegar a los datos que están en una estructura de datos.