LP - Módulo 3 -Estructuras de programación.pptx
LP - Módulo 3 -Estructuras de programación.pptx
Estructuras de
programación
Objetivos del encuentro
ESTRUCTURAS DE PROGRAMACIÓN
• 1 Estructura de manejo de datos
¿Que vamos a ver hoy?
• Operadores
• Arreglos
• Matrices
• Listas
• 2 Algoritmos de ordenamiento
• Burbuja
• Árbol
• Inserción
• Selección
Estructuras de manejo de datos - Operadores
VARIABLES
OPERADORES
Arreglos
Son estructuras de datos con tamaño fijo y que a cada elemento se puede acceder directamente si se
conoce la posición en el arreglo denominado índice.
Índice: Comienzan en el 0 y termina con un valor menos de la cantidad de elementos que puede almacenar.
Arreglos
Ejemplo: creación de un array de 5 elementos en C++
Int arregloDeEnteros[5]; Int Arreglo de tipo entero, sólo se pueden almacenar números.
Tiene 5 posiciones por lo tanto el índice va del 0 al 4.
arregloDeEnteros[0] = 2;
[] Para acceder a un item en particular se necesita su índice que
arregloDeEnteros[1] = 1;
se indica entre corchetes.
arregloDeEnteros[2] = 29;
arregloDeEnteros[3] = -7;
arregloDeEnteros[4] = 4;
Int arregloDeEnteros[5];
arregloDeEnteros[0] = 2;
arregloDeEnteros[1] = 6;
arregloDeEnteros[2] = 1; Definición del array
arregloDeEnteros[3] = -5;
arregloDeEnteros[4] = 22;
Int suma = 0;
Auto: podemos usarlo cuando creamos una variable y no conocemos el tipo de dato del valor.
Arreglos y Listas
Arreglo Lista
Acceso Indexado (dado el índice, accedemos Secuencial (debemos recorrer desde el
directamente al elemento) primer elemento hasta encontrar lo que
buscamos)
Tamaño Fijo Variable
Útil cuando Se conoce la cantidad de elementos. Se desconoce la cantidad de elementos.
Acceso eficiente por índice. Útil cuando la velocidad de acceso al
Ineficiente cuando necesito cambiar elemento no es un factor clave.
la cantidad de elementos. Eficiente cuando cambio el tamaño,
adiciono o elimino un elemento.
¿Consultas?
Algoritmos de ordenamiento
Algoritmos de ordenamiento
Son un tipo especial de algoritmo que sirva para ordenar elementos de un arreglo con un criterio
específico.
Tiene dos elementos:
• Elementos a ordenar (lista, arreglo u otra estructura de datos)
• Criterio de ordenamiento: regla para ordenar: mayor a menor, menor a mayor, alfabéticamente, etc.
INTERNO
Complejidad “O”
• Algoritmo 1: O (n)
• Algoritmo 2: O (2*n)
• Algoritmo 3: O (N2)
Es el algoritmo de ordenamiento más simple pero mas ineficiente. Se llama burbuja porque los valores mas bajos se
hunden, mientras que los mas altos suben como burbujas al inicio del arreglo.
El algoritmo compara elementos de a pares y, si el arreglo tiene n cantidad de elementos, el método realiza n-1
iteraciones sobre el arreglo (debido a que compara cada elemento con todos los demás que no han sido procesados).
Como en cada iteración se detecta el elemento mayor, cada iteración sucesiva va a ir teniendo un elemento menos
que comparar.
N=6
Primera iteración
Comparo el elemento de la posición 1 con la 2, es decir: 6 mayor que 4. como es
verdadero lo cambio de posición.
Segunda iteración
N=6
Tercera iteración
N=6
Cuarta iteración
N=6
Quinta iteración
N=6
Este algoritmo utiliza una estructura especial llamada árbol binario para poder ordenar los
elementos de una arreglo u otro tipo de estructura.
Se basa en construir el árbol, elemento por elemento, los que se insertan de forma ordenada.
Luego se obtienen los elementos ordenados.
Este algoritmo tiene una complejidad de O (n.logn), el cual es un valor mucho más bajo que O
(n2), en especial cuando son muchos los elementos para ordenar.
El algoritmo recorre cada elemento y los va insertando al árbol ordenado siguiendo las siguientes
reglas:
• Cada nodo hijo posicionado a la izquierda debe ser menor que el nodo padre.
• Cada nodo hijo posicionado a la derecha debe ser mayor o igual que el nodo padre.
Arbol - Ejemplo
• Pasa al siguiente elemento: número 11. Al ser mayor que 7, se coloca a la derecha.
• Pasa al siguiente elemento: número 15. Al ser mayor que 11, se coloca como hijo derecho.
• Finalmente el número 6. Al ser mayor que 5, va a su derecha, pero como es menor que 7 va a
su izquierda y como hijo de este ultimo.
Arbol - Ejemplo
4 7
2 6 11
15
• Se recorre el árbol en inorden (que significa ir primero, con los elementos más a la izquierda) y
se arma el arreglo ordenado.
Inserción
3. Tomo el tercer elemento: 7. Este número es mayor que 5, entonces lo ubico a su derecha.
4. Tomo el cuarto elemento: 2. Este es el menor número hasta ahora y es menor a 4, entonces lo
coloco a su izquierda.
5. Tomo el quinto elemento: 11, que al ser mayor que 7 se coloca a su derecha.
6. Tomo el quinto elemento: 15, que al ser mayor que 11 se coloca a su derecha.
Inserción - Ejemplo
Este algoritmo es fácil de entender y tiene el orden de complejidad de O (n2) y ese valor es
muy ineficiente.
Selección
Pasos:
1. Buscar el menor valor del arreglo e intercambiarlo por el elemento que se encuentra en la
primera posición.
2. Buscar el segundo valor menor del arreglo e intercambiarlo por el elemento que se encuentra
en la segunda posición.
3. Utilizar el mismo procedimiento para todos los elementos del arreglo.
¿Consultas?