Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EDA 01 Introduccion Estructuras y Algortimos
EDA 01 Introduccion Estructuras y Algortimos
INGENIERÍA DE SISTEMAS
ESTRUCTURAS DE DATOS Y
ALGORITMOS
UNIDAD N°1
Algoritmos - Arreglos
Estructura de datos
Arreglos
Listas Enlazadas
EDA-LSU 2
LOGROS DEL CURSO
Al finalizar el curso el estudiante debe ser capaz
de:
Elegir e implementar en java la estructura de
EDA-LSU 4
Fases en la resolución de
problemas – Método informático
Análisis del problema
Diseño del algoritmo
Codificación
Compilación
Prueba (Verificación y Depuración)
Mantenimiento
Documentación
EDA-LSU 5
Definiciones
Algoritmo: Es la especificación de una forma de
resolver un problema. Contiene una serie de pasos
precisos, definidos y finitos.
EDA-LSU 6
Características de un algoritmo
Preciso.- Indica el orden de
realización de cada paso.
Definido.- Si se sigue dos veces,
obtiene el mismo resultado cada
vez.
Finito.- Tiene un fin; un número
determinado de pasos.
EDA-LSU 7
Estructura de Datos
Una estructura de datos es una clase de
datos que se caracteriza por su
organización y por las operaciones
definidas sobre ellas.
Es una forma de organizar un conjunto de
datos elementales
Toda variable que utilizamos en un
programa pertenece a una estructura de
datos.
EDA-LSU 8
Estructura de Datos
Clasificación de las Estructuras de Datos
EDA-LSU 9
TAD o TDA
Un tipo abstracto de datos.- Es un tipo de
dato definido por una persona y que se
puede manipular de una manera similar
a los tipos de datos definidos por el
sistema.
Es un conjunto de valores y operaciones
definidos mediante una especificación
independiente de su implementación.
TAD = valores y operaciones
EDA-LSU 10
TAD o TDA
Un tipo abstracto de datos.- Es un tipo de
dato definido por una persona y que se
puede manipular de una manera similar
a los tipos de datos definidos por el
sistema.
Es un conjunto de valores y operaciones
definidos mediante una especificación
independiente de su implementación.
TAD = valores y operaciones
EDA-LSU 11
TDA Lista
Es una colección homogénea de
elementos relacionados entre si.
Característica: Cada elemento tiene un
único predecesor y un único sucesor o
siguiente, excepto el primero y último de
la lista.
L1, L2, L3, L4, …….Ln-1, Ln
n >=0 si n=0 la lista es vacía
EDA-LSU 12
TDA Lista
Tipos de listas:
Listas ordenadas.- Los elementos están
ordenados de acuerdo a un criterio
especifico.
Listas desordenadas.- Los elementos no
siguen un orden especifico.
Listas indexadas.- Se puede hacer
referencia a un elemento, mediante un
índice específico.
EDA-LSU 13
TDA Lista
Lista de novios
Lista de invitados
Lista de cursos a llevar
Lista de alumnos matriculados en
Estructuras de datos y algoritmos
EDA-LSU 14
TDA Lista
Operaciones con Listas
Creación: CreaLista
Transformación: InsertarElemento,
borrarElemento, ModificarElemento,
VaciarLista.
Otras Operaciones: recorrerLista,
recuperarElemento,
EDA-LSU 15
TDA Lista
Implementación de una lista mediante:
Arreglos: Cada posición es un
elemento de la lista. Es una estructura
estática.
Punteros: Se denominan listas
enlazadas y cada nodo es un elemento
de la lista. Es una estructura dinámica.
EDA-LSU 16
TDA Lista
Estructuras estáticas vs estructuras
dinámicas
¿Qué pasa con la memoria?
¿Ventajas de cada una?
¿Desventajas?
EDA-LSU 17
Arreglos
Conjunto o una colección finita, homogénea y
ordenada de elementos.
Es un conjunto o agrupación de variables del
mismo tipo cuyo acceso se realiza por medio de
índices
Finito porque tiene un límite. Se conoce la cantidad
máxima de elementos del arreglo
Homogénea porque todos los elementos son del mismo
tipo de dato
Ordenado porque es posible identificar al primero,
segundo, etc. elemento.
EDA-LSU 18
Arreglos
Los arreglos pueden ser de los siguientes tipos:
De una dimensión (vectores).
De dos dimensiones (matrices).
De tres o más dimensiones.
Desde el punto de vista del programa, un arreglo
es una zona de almacenamiento contiguo, que
contiene una serie de elementos del mismo tipo.
Desde el punto de vista lógico podemos
considerarlas como un conjunto de elementos
ordenados en fila.
EDA-LSU 19
Arreglos
Los arreglos se representan en memoria de la
forma siguiente:
int A [ ] = new int [7]; (sintaxis en java)
EDA-LSU 20
Arreglos
Para calcular la dirección de memoria de un
elemento dentro de un arreglo se usa la
siguiente formula:
Di = B + [(i - li) * w]
donde :
Di = Dirección de inicio del elemento i
B = Dirección de inicio del arreglo
i = Índice del elemento
li = Límite inferior del arreglo
w = Número de bytes de cada elemento
EDA-LSU 21
Arreglos
Ejemplo:
Calcular la dirección del elemento 4 del arreglo A
(1:10).
Cada elemento tiene 2 bytes y el elemento uno es el
primer elemento del arreglo.
Además el arreglo empieza en la dirección 100
Usando la formula: Di = B + [(i - li) * w]
EDA-LSU 22
Arreglos
Para almacenar dos conjuntos de datos de
diferentes tipos de datos, que tengan
relación una con la otra, se debe utilizar
dos arreglos de una dimensión cada una.
EDA-LSU 23
Arreglos - Ejercicios
Utilizando arreglos, ingresar N números y
calcular cual es el número menor, mayor
EDA-LSU 24
¿Preguntas?
Demetrio Elgueta
EDA-LSU 25
Ejercicios
Cuadrado de un número
Indicar si un Número es primo
Área de un circulo
Mínimo, máximo de 3 valores
EDA-LSU 26
EDA-LSU 27