EDA 01 Introduccion Estructuras y Algortimos

27
ESTRUCTURAS DE DATOS Y ALGORITMOS UNIDAD N°1 Algoritmos - Arreglos DIVISIÓN DE ESTUDIOS PROFESIONALES PARA EJECUTIVOS INGENIERÍA DE SISTEMAS Prof. Lizardo Silva Ubaldo EDA-LSU 1

Transcript of EDA 01 Introduccion Estructuras y Algortimos

ESTRUCTURAS DE DATOS Y ALGORITMOS

UNIDAD N°1Algoritmos - Arreglos

DIVISIÓN DE ESTUDIOS PROFESIONALES PARA EJECUTIVOS

INGENIERÍA DE SISTEMAS

Prof. Lizardo Silva Ubaldo

EDA-LSU 1

Agenda

Presentación del curso Algoritmos

Estructura de datos

Arreglos

Listas EnlazadasEDA-LSU 2

LOGROS DEL CURSOAl finalizar el curso el estudiante debe ser capaz de:

Elegir e implementar en java la estructura de datos, tipos, operaciones y forma de representación en memoria más adecuados para solucionar una situación concreta.

Elegir e implementar el algoritmo de búsqueda, ordenamiento y técnica de recursividad más apropiados para optimizar el tiempo de ejecución y el consumo de memoria de las estructuras de datos más adecuadas.

EDA-LSU 3

Preguntas ¿Cuántos trabajan programando?

¿Qué lenguajes de programación conocen?

¿Qué tipo de aplicaciones ha programado?

¿Quiénes no saben programar?

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.

Estructura de datos: Disposición en memoria de los datos e información.

Problema: Conjunto de hechos o circunstancias que dificultan la consecución de algún fin.

Programa: Algoritmos + Estructuras de datos.

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

Estructuras estáticas vs estructuras dinámicas

¿Qué pasa con la memoria? ¿Ventajas de cada una? ¿Desventajas?

TDA Lista

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]

Resultado: Dirección = 100+(4-1)* 2 = 106

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

Calcular el promedio de los N números y mostrar los números que superan dicho promedio.

Ingresar el nombre y la edad de N personas

EDA-LSU 24

¿Preguntas?¿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