0% encontró este documento útil (0 votos)
28 vistas86 páginas

Módulo 3. Estructuras de La Programación

El módulo aborda las estructuras de manejo de datos en programación, incluyendo operadores, arreglos, matrices y listas. Se explican los métodos de ordenamiento de arreglos y se detallan las características y usos de cada estructura de datos. Además, se enfatiza la importancia de la gestión eficiente de la memoria al trabajar con estas estructuras.

Cargado por

sfandress
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas86 páginas

Módulo 3. Estructuras de La Programación

El módulo aborda las estructuras de manejo de datos en programación, incluyendo operadores, arreglos, matrices y listas. Se explican los métodos de ordenamiento de arreglos y se detallan las características y usos de cada estructura de datos. Además, se enfatiza la importancia de la gestión eficiente de la memoria al trabajar con estas estructuras.

Cargado por

sfandress
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 86

Módulo 3.

Estructuras de la programación

En el siguiente módulo, profundizaremos en la forma en que podemos almacenar


datos dentro de nuestros algoritmos. Esto corresponde a las estructuras de
manejos de datos, revisaremos qué son los operadores, arreglos, matrices y listas.

Luego, veremos las principales formas de ordenar los arreglos, a través de


algoritmos de ordenamientos predefinidos, como el método de burbuja, árbol,
inserción o selección; cómo operan y el costo que tiene cada uno de ellos.

Video de inmersión

Unidad 1. Estructuras de manejo de datos

Unidad 2. Algoritmos de procesos

Video de habilidades

Cierre

Referencias
Descargá la lectura
Lección 1 de 7

Video de inmersión

Verify to continue
We detected a high number of errors from your
connection. To continue, please confirm that
you’re a human (and not a spambot).

I'm not a robot


reCAPTCHA
Privacy - Terms

C O NT I NU A R
Lección 2 de 7

Unidad 1. Estructuras de manejo de datos

Podemos definir los datos como “hechos que describen sucesos y


entidades” (Gutiérrez Díaz, s. f., p. 3). En codificación, los datos permiten
que el programa realice operaciones y algo de valor. Por ejemplo, en un
programa que hace sumas, los datos serían los números para sumar,
mientras que el resultado sería el total de esa suma.

En general, un programa manejará muchos datos, por lo que, para hacer


más sencillos su manipulación y almacenamiento, se utilizan diferentes
estructuras, como arreglos, matrices y/o listas.

Tema 1. Operadores
Revisaremos los operadores que se pueden utilizar con los diferentes tipos
de datos. A algunos de ellos ya los hemos utilizado en algunos ejemplos.
Los operadores permiten manipular los datos, existen operadores que
necesitan dos variables, como suma o resta, y otros que pueden manipular
solo una variable, como el aumento en uno.

A continuación, vamos a ver los más comunes:


Tabla 1: Operadores

Operador Significado Ejemplo Resultado

var1 + var2

+ Suma Numérico
el resultado es la suma de la variable
var1 y la variable var2

var1 - var2

- Resta Numérico
el resultado es la resta de la variable
var1 y la variable var2

var1 * var2

* Multiplicación Numérico
el resultado es la multiplicación de la
variable var1 con var2

var1 / var2

/ División Numérico
el resultado es la división de var1 con
var2

var1 % var2

% Módulo Entero
el resultado es el resto de la división
de var1 y var2

&& AND lógico var1 && var2 Lógico

el resultado es verdadero si ambas


son verdaderas y falso en todo otro
caso

var1 || var2

|| OR lógico Lógico
el resultado es falso si ambas son
falsas y verdadero en todo otro caso

var1 = 2

Según tipo
= Asignación de valor
el resultado es que var1 ahora tiene el de dato

valor 2

Var1 1

Según tipo
Asignación de valor
el resultado es que var1 ahora tiene el de dato

valor 2

var1 == var2

== Igual Lógico
el resultado es verdadero si var1 es
igual a var2, falso en otro caso

var1 != var2

!= Diferente el resultado es verdadero si var1 es Lógico

distinto de var2 y verdadero si no lo


son

var1 += 2

+= Suma y asignación Numérico


en el caso de que var1 sea igual a 3, el
resultado sería igual a 5

-= Resta y asignación var1 -= 2 Numérico


en el caso que var1 sea igual a 3, el
resultado sería igual a 1

var1 > var2

> mayor que Lógico


verdadero si el valor de var1 es mayor
que el de var2

var1 >= var2

>= mayor o igual que Lógico


verdadero si el valor de var1 es mayor
o igual que el de var2

var1 < var2

< menor que Lógico


verdadero si el valor de var1 es menor
que el de var2

var1 <= var2

<= menor o igual que Lógico


verdadero si el valor de var1 es menor
o igual que el de var2

var1++

Aumenta en uno el valor


++ Numérico
de la variable si var1 es igual a 2, el resultado es
igual a 3

var1- -

Disminuye en uno el valor


-- Numérico
de la variable si var1 es igual a 2, el resultado es
igual a 1

! Negación !var1 Lógico


verdadero si var1 es igual a falso,
falso si var1 es verdadero

Fuente: elaboración propia.

Los operadores, junto con las variables y estructuras de datos, son las
bases para el desarrollo de software, que permiten llevar a cabo acciones
de acuerdo con el valor de dichas variables y el resultado de los operadores.

Tema 2. Arreglos
A los tipos de datos básicos revisados en el módulo anterior, le podemos
sumar los tipos de datos complejos, que son un conjunto de datos
agrupados para formar una estructura. Los arreglos son estructuras de
datos que permiten almacenar un conjunto de variables del mismo tipo. Por
ejemplo, podemos tener un arreglo que contenga los números 2, 3, 5, 2 u
otro que contenga las palabras: gaseosa, vino, agua.

Una característica fundamental de los arreglos (también conocidos como


arrays) es que son de tamaño fijo y que puede accederse a cada elemento
directamente conociendo su posición en el arreglo, denominado índice.

Los índices en los arreglos que empiezan con el número cero y terminan
con un valor menos que la cantidad de elementos que puede almacenar,
esta cantidad se especifica cuando se crea el arreglo.
Figura 1: Dibujo arreglo de 5 ítems

Fuente: elaboración propia.

En la figura, tenemos un arreglo que contiene 10 posiciones, en cada una


de las casillas se podrá almacenar un elemento diferente, siempre que estos
ítems sean todos del mismo tipo.

La forma de declarar un arreglo en pseudocódigo se detalla en la siguiente


figura.

Por ejemplo, tenemos que crear un arreglo que va a almacenar cinco


números. El código sería de la siguiente manera:

Figura 2: Arreglo de 5 ítems


Fuente: elaboración propia a base del software PSeInt (Novara, 2021).

Para declarar en PSeInt, es necesario declarar la variable que utilizaremos e


indicar el tipo de dato que almacenará.

Luego, tenemos la siguiente instrucción, donde se especifica la cantidad


máxima de elementos que puede contener.

En algunos lenguajes de programación, esta declaración y la asignación del


tamaño se pueden hacer en una sola línea.

La asignación de valores se realiza haciendo referencia al índice del


casillero donde irá el dato. Por ejemplo, si queremos poner los valores 100,
200, 300, 400, 500. Cada uno de ellos en un casillero, podemos hacerlo de
la siguiente forma:
Tabla 2: Dibujo arreglo de 5 ítems

Fuente: elaboración propia.

Figura 3: Arreglo de 5 ítems


Fuente: elaboración propia a base del software PSeInt (Novara, 2021).

Para acceder y asignar valores a un ítem particular de un arreglo,


necesitamos su índice, el cual se indica entre corchetes; por ejemplo, para
el primer elemento sería: [0]

Si quisiéramos imprimir en pantalla el valor de un elemento de este arreglo,


podríamos hacerlo así:
Figura 4: Imprimir elemento del índice 3

Fuente: elaboración propia a base del software PSeInt (Novara, 2021).

Figura 5: Resultado Imprimir elemento del índice 3

Fuente: elaboración propia a base del software PSeInt (Novara, 2021).

En el ejemplo anterior, se imprime el número 400, ya que ese ha sido


asignado al índice 3.

Al ser de tamaño fijo, si necesitamos almacenar más elementos de los


definidos en la creación del arreglo, tenemos que crear uno nuevo y copiar
los elementos a este último. En nuestro ejemplo, si queremos agregar un
sexto elemento, tenemos que crear un arreglo con seis lugares, copiando
los elementos agregados al arreglo anterior a este último.
Al tener una cantidad fija de elementos y tener un índice de tipo número y
secuencial, el bucle por excelencia para recorrer un arreglo es el ciclo
Para/for.

Figura 6: Recorrer un arreglo con ciclo Para

Fuente: elaboración propia a base del software PSeInt (Novara, 2021).

Figura 7: Resultado recorrer un con ciclo Para


Fuente: elaboración propia a base del software PSeInt (Novara, 2021).

 Ejercicio

Declara un algoritmo de tipo carácter, que permita almacenar los


nombres de los 20 estudiantes de un curso. Luego, genera un ciclo que
pregunte dichos nombres al usuario y los almacene en un arreglo.

Solución

Dentro de las opciones que puedes considerar, podrías leer el nombre del estudiante en una variable —
como en la primera solución— o leer directamente en el ejemplo, como en la segunda solución.
Figura 8: Solución 1

Fuente: elaboración propia a base del software PSeInt (Novara, 2021).

Figura 9: Solución 2
Fuente: elaboración propia a base del software PSeInt (Novara, 2021).

Cuando pasamos el pseudocódigo a un lenguaje de programación,


debemos considerar, que cada variable creada es espacio en memoria que
utilizaremos para almacenar dichos valores, mientras más espacio
utilicemos, mayor será nuestro tiempo de respuesta. Es por eso que
debemos considerar correctamente la cantidad de variables o el tamaño de
estas, para no perjudicar la performance de las aplicaciones.

Tema 3. Matrices
Las matrices son estructuras de datos que permiten almacenar datos en
forma de tabla, en donde especificamos un índice para la fila y otro para la
columna. Son iguales que los arreglos, en el sentido que necesitan índices
para acceder a los elementos y son de tamaño fijo. La principal diferencia
entre un arreglo y una matriz es que, con esta última, necesitamos dos
índices, uno para indicar la fila y otro para indicar la columna. Se les
reconoce también como arreglos de dos dimensiones.

Las matrices son un arreglo de arreglos, es decir, un arreglo en el que cada


elemento es otro arreglo.

Tabla 3: Dibujo matriz 2 filas, 5 columnas


Fuente: elaboración propia

Tabla 4: Dibujo matriz 2 filas, 5 columnas

Fuente: elaboración propia.

En este ejemplo, para poder acceder al elemento de la primera fila y


segunda columna (Clara), tenemos que usar dos índices: 0 (fila) y 1
(columna). Estos índices se representan entre corchetes: [0][1].

Una matriz en pseudocódigo se puede declarar y asignar de la siguiente


manera.

Figura 10: Matriz 3 filas, 4 columnas

Fuente: elaboración propia a base del software PSeInt (Novara, 2021).


Para obtener el valor de una matriz, debemos indicar en el primer índice la
fila que queremos revisar; y en el segundo índice, la columna. Recordando
siempre que el primer índice es 0 para ambos casos. Si queremos mostrar
los primeros integrantes de cada equipo.

Tabla 5: Elementos para mostrar

Fuente: elaboración propia.

Figura 11: Instrucción para mostrar elementos de matriz

Fuente: elaboración propia a base del software PSeInt (Novara, 2021).


Figura 12: Resultado de mostrar elementos de matriz

Fuente: elaboración propia a base del software PSeInt (Novara, 2021).

En el resultado del ejemplo anterior, se muestra en pantalla el valor de la fila


0 y columna 0, cuyo valor es José; y la fila 1, columna 0, que corresponde a
Jessica.

Al igual que los arreglos, si necesitamos almacenar más elementos de los


definidos inicialmente, necesitamos crear una matriz más grande. Las
matrices, al estar hechas de arreglos, no se pueden cambiar de tamaño.

Para recorrer la matriz, es necesario realizar un ciclo anidado, es decir, uno


para recorrer las filas y otro para recorrer las columnas.

Por lo tanto, en el primer ciclo de las filas, podremos revisar todos los
ejemplos de esa fila y, luego, avanzamos a la siguiente corrida de
elementos.
Figura 13: Recorrer matriz

Fuente: elaboración propia a base del software PSeInt (Novara, 2021).

Figura 14: Resultado de recorrer matriz


Fuente: elaboración propia a base del software PSeInt (Novara, 2021).

Recuerda que para concatenar varias frases o valores en la instrucción


Escribir, utilizamos el símbolo “,” para juntar los valores en una sola frase.

También es importante indicar que los índices de las matrices y arreglos


parten de 0, pero no es un valor común para el usuario, es por eso que, al
mostrar los mensajes, aumentamos en 1 los valores, de esta forma, el
usuario reconoce el valor 1 como el número más bajo.

Recuerda

La cantidad de elementos de un arreglo o matriz siempre es uno más que el


índice que utilizaremos, es decir, si tengo 5 elementos, mi índice irá de 0 a
4. Es por eso que, al dimensionar un arreglo o matriz, debemos indicar la
cantidad de elementos, es decir, 5.

Dimensión: arreglo[5]

Índice: de 0 a 4

Punteros

En programación, los punteros son direcciones de memoria. Es una forma


de saber en qué parte de la memoria se encuentra una variable y poder
acceder a ella cuando sea necesario.

 Ejercicio

Estoy realizando un inventario de mi despensa, para poder realizar las


compras este fin de semana. ¿Cómo podemos utilizar una matriz para
poder almacenar el nombre del alimento y la cantidad? De esta forma,
podré contar con una lista de los alimentos que necesito comprar.
Considera que solo puedo cargar 25 productos en mi vehículo.

Solución

En este caso, tenemos claro que solo tendremos dos columnas, una para el nombre del producto y otra
para la cantidad, es por eso que no es necesario hacer un ciclo anidado, podemos hacer referencia
directa a la columna 0 para el nombre y a la columna 1 para la cantidad. Solo hacemos un ciclo que nos
permita recorrer las filas, que, en este caso, son 25, es por eso que el índice va de 0 a 24.

Figura 15: Solución


Fuente: elaboración propia a base del software PSeInt (Novara, 2021).

Tema 4. Listas
Las listas son otra estructura de datos muy importante, la cual difiere de los
arreglos y matrices en dos aspectos fundamentales:

1 No son accedidas con un índice, sino de manera secuencial. Esto


significa que, si queremos acceder a un elemento, debemos
buscar elemento por elemento en la lista hasta encontrarlo.

2 No tienen tamaño fijo, no necesitamos crear una nueva lista si


queremos agregar más elementos.

Las listas son secuenciales, debido a que cada elemento contiene un


puntero hacia el siguiente elemento. Es por ello que siempre que
busquemos un elemento en una lista, debemos empezar por el primero, ya
que este tiene el puntero hacia el segundo. Luego, el segundo tiene el
puntero hacia el tercero y así sucesivamente.

Por ejemplo, una lista de números sería de la siguiente manera:

Figura 16: Estructura de lista de números (simple enlace)


Fuente: [Imagen sin título sobre estructura de lista de números]. Con adaptación propia. (s. f.).
Recuperada de https://commons.wikimedia.org/w/index.php?curid=2245162

La lista anterior es de tipo simple enlace, ya que tiene un solo puntero hacia
el siguiente elemento.

Recuerda

Un puntero es una dirección de memoria a un elemento. Solo podemos


obtener la dirección de un elemento conociendo el elemento anterior. Esto lo
hace secuencial para enlaces simples, sin embargo, nos permite almacenar
infinitos valores.

Otro tipo es la lista doble enlace, en esta lista, cada elemento posee un
puntero o referencia no solo al siguiente, sino también al elemento anterior.

Figura 17: Estructura de lista de números (doble enlace)


Fuente: [Imagen sin título sobre estructura de lista de números - doble enlace]. Con
adaptación propia. (s. f.). Recuperada de https://commons.wikimedia.org/w/index.php?
curid=2245165

Esta forma de trabajar nos permite volver al ítem anterior, en caso de


necesitarlo. En el simple enlace, es necesario comenzar desde el primer
ítem para encontrar una posición específica.

Aunque nos entrega más flexibilidad, sigue siendo secuencial.

Tanto las listas como los arreglos son muy utilizados y tienen sus ventajas y
desventajas, por lo que, a la hora de elegir qué estructura de datos utilizar,
los debemos tener en cuenta:

Tabla 6: Arreglos y listas

Arreglo Lista
Secuencial (debemos recorrer
Indexado (dado el índice, accedemos
Acceso desde el primer elemento hasta
directamente al elemento).
encontrar el que buscamos).
Tamaño Fijo. Variable.
Útil cuando… Sabemos de antemano la cantidad de No sabemos la cantidad de
elementos. Al ser indexado, el acceso elementos de antemano. Es útil
es muy eficiente, por lo que se puede cuando la velocidad de acceso al
tener en cuenta para aplicaciones elemento no es un factor clave. Al
que necesiten alto rendimiento. No es no requerir cambio de tamaño, la
eficiente tener que recrear el arreglo
todo el tiempo porque necesitamos adición y eliminación de un
más espacio. elemento es muy eficiente.

Fuente: elaboración propia.

C O NT I NU A R
Lección 3 de 7

Unidad 2. Algoritmos de procesos

Los algoritmos de ordenamiento son un tipo especial de algoritmo que


ordena los elementos de un arreglo, bajo un criterio específico.

Tienen dos elementos fundamentales:

Los elementos que van a ordenar: esto puede ser una lista, un
arreglo u otra estructura de datos.

El criterio de ordenamiento: numérico de mayor a menor, de


menor a mayor, alfabéticamente, inverso alfabéticamente, entre
otros.

El ordenamiento de los elementos puede ser algo muy complejo y


computacionalmente alto de realizar, especialmente, cuando la cantidad de
elementos para ordenar crece.

Computacionalmente alto:

Se refiere a un proceso que ocupa mucho procesamiento y memoria.


Los algoritmos de ordenamiento se pueden clasificar de acuerdo a diversos
factores, entre los que se encuentran los siguientes:

De ordenamiento interno: utiliza, únicamente, la memoria para


realizar el procesamiento y manipular elementos. No utiliza el
almacenamiento en disco.

De ordenamiento externo: utiliza tanto la memoria como el


almacenamiento en disco.

Memoria se refiere al elemento del computador que permite almacenar


información que se va a utilizar en el corto plazo. La cantidad de memoria
de una PC es mucho más pequeña que el espacio de almacenamiento en
disco, es por eso que se debe utilizar correctamente.

En este caso, la mayoría de las veces, se utilizará un ordenamiento interno.


Sin embargo, al ordenamiento externo es común encontrarlo en
aplicaciones que buscan y clasifican muchos datos (con “muchos” se hace
referencia a miles de millones), como, por ejemplo, big data y fog
computing.

Otra forma importante de clasificar estos algoritmos es mediante su


complejidad, es decir, la cantidad de procesamiento que necesitan. Mientras
menor complejidad, mejor el algoritmo.
La complejidad se expresa con la letra O (mayúscula), seguida por
paréntesis. Dentro de esos paréntesis, se coloca la letra n, que se refiere a
la cantidad de elementos que se van a procesar. No es lo mismo ordenar
diez elementos que diez millones; por lo tanto, la complejidad debe ser
expresada de manera tal que sirva para cualquier cantidad de elementos.

Por ejemplo, una complejidad O(n) significa que es igual a la cantidad de


elementos (n = cantidad de elementos por ordenar). Una complejidad de
O(2*n) significa que es el doble de la cantidad de elementos que ordenar, y

una complejidad de O(n2) significa que es la cantidad de elementos al


cuadrado.

 Ejercicio

Ordena los siguientes algoritmos desde el más simple al más complejo.

1. Algoritmo 1: O(n2).
2. Algoritmo 2: O(n).
3. Algoritmo 3: O(2*n).

Solución

Supongamos que ordenaremos 15 elementos. El costo de los algoritmos sería el
siguiente:
1. Algoritmo 1: O(n2) = O (152) = O(225)
2. Algoritmo 2: O(n) = O (15)
3. Algoritmo 3: O(2*n) = O (2*15) = O(30)

El orden de más simple a más complejo es: 2, 3, 1

Como regla general, se sabe que, mientras más chico sea el resultado de lo
que está dentro de los paréntesis, mejor y más simple será el algoritmo.
Como n siempre es menor que 2*n y que n2, se puede concluir que el
algoritmo 2 es el mejor.

Se verán, a continuación, algunos algoritmos básicos de ordenamiento,


junto con sus complejidades.

Tema 1. Burbuja
El algoritmo burbuja es uno de los algoritmos más simples (pero también
más ineficientes) de ordenamiento, 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.
El método burbuja no tiene la inteligencia de detectar si el arreglo ya está
ordenado, por lo que siempre se hacen n-1 iteraciones sobre este, sin
importar el estado de inicio.

Queremos ordenar de menor a mayor el siguiente arreglo utilizando el


algoritmo burbuja.

Figura 18: Ejemplo de arreglo para ordenamiento burbuja

Fuente: elaboración propia.

Como se indicaba antes, se realizan n-1 iteraciones, este arreglo posee (n)
7 elementos, y la cantidad de iteraciones son (n-1) 6.

1. Primera iteración

a. Realizamos la comparación de los dos elementos siguientes. En


este caso, 5 y 7, el orden se encuentra correcto, por lo que dejamos
los valores en la misma posición.
Figura 19: Ejemplo de arreglo para ordenamiento burbuja - Iteración 1 -
Comparación 1

Fuente: elaboración propia.

b. Realizamos la comparación de los dos elementos siguientes.


En este caso, 5 y 7, el orden se encuentra correcto, por lo que
dejamos los valores en la misma posición.

Figura 20: Ejemplo de arreglo para ordenamiento burbuja - Iteración 1 -


Comparación 2

Fuente: elaboración propia.


c. Realizamos la comparación de los dos elementos siguientes.
En este caso, 7 y 2, invertimos los valores, ya que no cumplen con
el criterio. Queda el 2 antes del 7.

Figura 21: Ejemplo de arreglo para ordenamiento burbuja - Iteración 1 -


Comparación 3

Fuente: elaboración propia.

d. Realizamos la comparación de los dos elementos siguientes.


En este caso, 7 y 11, el orden se encuentra correcto, por lo que
dejamos los valores en la misma posición.

Figura 22: Ejemplo de arreglo para ordenamiento burbuja - Iteración 1 -


Comparación 4
Fuente: elaboración propia.

e. Realizamos la comparación de los dos elementos siguientes.


En este caso, 11 y 15, el orden se encuentra correcto, por lo que
dejamos los valores en la misma posición.

Figura 23: Ejemplo de arreglo para ordenamiento burbuja - Iteración 1 –


Comparación 5

Fuente: elaboración propia.

f. Realizamos la comparación de los dos elementos siguientes. En


este caso, 15 y 6, invertimos los valores, ya que no cumplen con
el criterio, queda el 6 antes del 15.

Figura 24: Ejemplo de arreglo para ordenamiento burbuja - Iteración 1 –


Comparación 6
Fuente: elaboración propia.

g. El último elemento ha quedado en su posición, por lo que no


volvemos a tocarlo. Al no existir más pares para comparar,
volvemos al comienzo.

2. Segunda iteración

a. Comparamos 4 con 5, el orden se encuentra correcto, por lo


que dejamos los valores en la misma posición.

Figura 25: Ejemplo de arreglo para ordenamiento burbuja - Iteración 2 –


Comparación 1

Fuente: elaboración propia.


b. Comparamos 5 con 2, al ser menor el segundo elemento,
invertimos.

Figura 26: Ejemplo de arreglo para ordenamiento burbuja - Iteración 2 -


Comparación 2

Fuente: elaboración propia.

c. Comparamos 5 con 7, el orden se encuentra correcto, por lo


que dejamos los valores en la misma posición.

Figura 27: Ejemplo de arreglo para ordenamiento burbuja - Iteración 2 -


Comparación 3

Fuente: elaboración propia.


d. Comparamos 7 con 11, el orden se encuentra correcto, por lo
que dejamos los valores en la misma posición.

Figura 28: Ejemplo de arreglo para ordenamiento burbuja - Iteración 2 -


Comparación 4

Fuente: elaboración propia.

e. Comparamos 11 con 6, al ser menor el segundo elemento,


invertimos.

Figura 29: Ejemplo de arreglo para ordenamiento burbuja - Iteración 2 -


Comparación 5
Fuente: elaboración propia.

f. Este ítem no tiene más elementos de comparación, por lo que


no volvemos a tocarlo. Al no existir más pares para comparar,
volvemos al comienzo.

3. Tercera iteración

a. Comparamos 4 con 2, al ser menor el segundo elemento,


invertimos.

Figura 30: Ejemplo de arreglo para ordenamiento burbuja - Iteración 3 -


Comparación 1

Fuente: elaboración propia.

b. Comparamos 4 con 5, el orden se encuentra correcto, por lo


que dejamos los valores en la misma posición.
Figura 31: Ejemplo de arreglo para ordenamiento burbuja - Iteración 3 -
Comparación 2

Fuente: elaboración propia.

c. Comparamos 5 con 7, el orden se encuentra correcto, por lo


que dejamos los valores en la misma posición.

Figura 32: Ejemplo de arreglo para ordenamiento burbuja - Iteración 3 -


Comparación 3

Fuente: elaboración propia.


d. Comparamos 7 con 6, al ser menor el segundo elemento,
invertimos.

Figura 33: Ejemplo de arreglo para ordenamiento burbuja - Iteración 3 -


Comparación 4

Fuente: elaboración propia.

e. Este ítem no tiene más elementos de comparación, por lo que


no volvemos a tocarlo. Al no existir más pares para comparar,
volvemos al comienzo.

4. Cuarta iteración

a. Comparamos 2 con 4, el orden se encuentra correcto, por lo


que dejamos los valores en la misma posición.

Figura 34: Ejemplo de arreglo para ordenamiento burbuja - Iteración 4 –


Comparación 1
Fuente: elaboración propia.

b. Comparamos 4 con 5, el orden se encuentra correcto, por lo


que dejamos los valores en la misma posición.

Figura 35: Ejemplo de arreglo para ordenamiento burbuja - Iteración 4 -


Comparación 2

Fuente: elaboración propia.

c. Comparamos 5 con 6, el orden se encuentra correcto, por lo


que dejamos los valores en la misma posición.
Figura 36: Ejemplo de arreglo para ordenamiento burbuja - Iteración 4 -
Comparación 3

Fuente: elaboración propia.

d. Este ítem no tiene más elementos de comparación, por lo que


no volvemos a tocarlo. Al no existir más pares a comparar,
volvemos al comienzo.

5. Quinta iteración

a. Comparamos 2 con 4, el orden se encuentra correcto, por lo


que dejamos los valores en la misma posición.

Figura 37: Ejemplo de arreglo para ordenamiento burbuja - Iteración 5 -


Comparación 1
Fuente: elaboración propia.

b. Comparamos 4 con 5, el orden se encuentra correcto, por lo


que dejamos los valores en la misma posición.

Figura 38: Ejemplo de arreglo para ordenamiento burbuja - Iteración 5 –


Comparación 2

Fuente: elaboración propia.

c. Este ítem no tiene más elementos de comparación, por lo que


no volvemos a tocarlo. Al no existir más pares para comparar,
volvemos al comienzo.

6. Sexta iteración
a. Comparamos 2 con 4, el orden se encuentra correcto, por lo
que dejamos los valores en la misma posición.

Figura 39: Ejemplo de arreglo para ordenamiento burbuja - Iteración 6 -


Comparación 1

Fuente: elaboración propia.

b. Este ítem no tiene más elementos de comparación, por lo que


no volvemos a tocarlo. Al no existir más pares para comparar,
volvemos al comienzo.

Se han acabado las iteraciones y el arreglo ha quedado ordenado.

Figura 40: Ejemplo de arreglo para ordenamiento burbuja - Arreglo


ordenado.
Fuente: elaboración propia.

La primera iteración es la única que recorre todos los elementos del arreglo,
ya que no se ha encontrado ningún elemento mayor. Es importante notar
que, desde la segunda iteración, la cantidad de comparaciones disminuye,
pues los últimos elementos se encuentran en sus posiciones correctas.

Al recorrer tantas veces el arreglo y no tener la capacidad para evaluar si el


arreglo ya está ordenado, el orden de complejidad del algoritmo burbuja es

de O(n2 ) y, como vimos en el ejercicio del ítem anterior, este valor es muy
ineficiente.

 Ejercicio

Realiza el ordenamiento del siguiente arreglo, mediante burbujas,


dibujando cada una de sus iteraciones. Ordenar de descendente.

Figura 41: Ejercicio algoritmo burbuja


Fuente: elaboración propia.

Solución

El orden de un arreglo se puede realizar con cualquier tipo de dato, en este caso, utilizaremos
caracteres, los cuales se ordenan de A Z cuando es ascendente y Z A cuando es descendente.

Para nuestro ejercicio, haremos un orden descendente, cantidad de iteraciones es (n-1) donde n es la
cantidad de elementos.
Elemento: n = 4
Iteraciones: n-1 = 3

Figura 42: Solución ejercicio algoritmo burbuja


Fuente: elaboración propia.
Tema 2. Árbol
Este algoritmo utiliza una estructura especial llamada árbol binario para
poder ordenar los elementos dentro de un arreglo u otro tipo de estructura.
La estrategia se basa en construir el árbol, elemento por elemento, el cual
se inserta directamente de manera ordenada. Luego, se obtienen los
elementos recorriendo el árbol construido.

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.
La principal característica de un árbol binario es que cada nodo puede tener
hasta dos nodos hijos. Si se tiene en cuenta esto, se explicará, paso a paso,
el algoritmo con un ejemplo.

Nodo:

“En un esquema o representación gráfica en forma de árbol, cada uno de


los puntos de origen de las distintas ramificaciones” (Real Academia
Española, s. f., https://dle.rae.es/nodo).

Dado el siguiente arreglo:

Figura 43: Ejemplo de arreglo para ordenamiento tipo árbol

Fuente: elaboración propia.

El algoritmo recorre cada elemento y los va copiando 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.

Se empezará a recorrer el arreglo: su primer elemento es el número 5, por


lo que lo agregamos al árbol. Al ser este el primer nodo, no tiene nodo
padre.

Figura 44: Ejemplo ordenamiento tipo árbol - elemento 0

Fuente: elaboración propia.

Luego, se pasará al siguiente elemento: el número cuatro. Este es menor


que cinco, por lo que se lo posiciona como hijo, a la izquierda.

Figura 45: Ejemplo ordenamiento tipo árbol - Elemento 1


Fuente: elaboración propia.

Si se pasa al siguiente número, se tiene el número siete. Al ser mayor que


cinco, se coloca hacia su derecha, como hijo.

Figura 46: Ejemplo ordenamiento tipo árbol - Elemento 2

Fuente: elaboración propia.


El siguiente elemento es el número dos que, al ser menor que cuatro, se lo
coloca hacia su izquierda, como hijo.

Figura 47: Ejemplo ordenamiento tipo árbol - Elemento 3

Fuente: elaboración propia.

El siguiente número es once, que es mayor que siete; por lo tanto, va a la


derecha de este último, como hijo.

Figura 48: Ejemplo ordenamiento tipo árbol - Elemento 4


Fuente: elaboración propia.

El siguiente elemento es el quince. Si se usa el mismo razonamiento, al ser


mayor que once, se lo coloca como hijo derecho.

Figura 49: Ejemplo ordenamiento tipo árbol - Elemento 5


Fuente: elaboración propia.

Finalmente, el número seis. Al ser mayor que cinco, va a su derecha. Pero,


como es menor que siete, va a su izquierda y como hijo de este último.

Figura 50: Ejemplo ordenamiento tipo árbol - Elemento 6


Fuente: elaboración propia.

Con esto, se tiene el árbol binario ya ordenado habiendo recorrido el arreglo


tan solo una vez. Por último, se recorre el árbol en inorden (que significa ir
primero con los elementos más a la izquierda) y se arma el arreglo
ordenado:

Figura 51: Ejemplo ordenamiento tipo árbol – Arreglo ordenado


Fuente: elaboración propia.

 Ejercicio

Se debe ordenar el siguiente arreglo, de mayor a menor. Utiliza el


ordenamiento tipo árbol para lograrlo.

Figura 52: Ejercicio ordenamiento tipo árbol – Arreglo


Fuente: elaboración propia.

Solución

En este caso, el arreglo posee valores numéricos, considerando valores decimales.
Sin embargo, la comparación de los valores se realiza de la misma forma en que lo
realizamos anteriormente.

Figura 53: Ejercicio ordenamiento tipo árbol – Solución


Fuente: elaboración propia.

Tema 3. Inserción
El ordenamiento por inserción utiliza el siguiente algoritmo:
1 Tomar el primer elemento del arreglo y copiarlo a un nuevo
arreglo.

2 Tomar el segundo elemento y compararlo con el ya existente. En


el caso de que sea menor, colocarlo a la izquierda. En el caso de
que sea mayor, colocarlo a la derecha.

3 Tomar el tercer elemento y realizar la misma evaluación: ubicarlo a


la derecha de aquellos elementos que son mayores y a la
izquierda de aquellos que son menores.

4 Repetir el paso anterior, hasta que no queden elementos en el


arreglo original.

5 El resultado es un nuevo arreglo ordenado.

Por ejemplo, dado el siguiente arreglo, ordenarlo por inserción:

Figura 54: Ejemplo de arreglo para ordenamiento por inserción

Fuente: elaboración propia.


Lo primero que se hace es tomar el primer elemento (en este caso, el
número cinco) y copiarlo a un nuevo arreglo:

Figura 55: Ejemplo de arreglo para ordenamiento por inserción -


Elemento 0

Fuente: elaboración propia.

Luego, se continúa con el siguiente: el número cuatro. Al ser menor que


cinco, se lo ubica hacia la izquierda.

Figura 56: Ejemplo de arreglo para ordenamiento por inserción -


Elemento 1
Fuente: elaboración propia.

Si se continúa con el tercer elemento, se encontrará con el número siete.


Este número es mayor que cinco, por lo cual se lo ubica a su derecha.

Figura 57: Ejemplo de arreglo para ordenamiento por inserción -


Elemento 2

Fuente: elaboración propia.

El cuarto elemento es el número dos. Este es el menor número hasta ahora


y menor que cuatro, por lo que se lo coloca a su izquierda.

Figura 58: Ejemplo de arreglo para ordenamiento por inserción -


Elemento 3
Fuente: elaboración propia.

Luego, en el quinto lugar, se encuentra el número once que, al ser mayor


que siete, se lo coloca a su derecha.

Figura 59: Ejemplo de arreglo para ordenamiento por inserción -


Elemento 4

Fuente: elaboración propia.

En el sexto lugar, está el número quince. Como es mayor que el número


once, se posiciona a su derecha.
Figura 60: Ejemplo de arreglo para ordenamiento por inserción -
Elemento 5

Fuente: elaboración propia.

Ya al final del arreglo, está el número seis, como último elemento. Este es
mayor que cinco, pero menor que siete, por lo que va a posicionarse a la
derecha de cinco y a la izquierda de siete.

Figura 61: Ejemplo de arreglo para ordenamiento por inserción -


Elemento 6

Fuente: elaboración propia.


Así, se obtiene un arreglo ordenado.

Figura 62: Ejemplo de arreglo para ordenamiento por inserción –


Ordenado

Fuente: elaboración propia.

El ordenamiento por inserción es popular, ya que es muy similar a la forma


en que se ordenan las cosas en la vida cotidiana (por ejemplo, un mazo de
cartas). Si bien es fácil de entender, el orden de complejidad del algoritmo
de ordenamiento por inserción es de O(n2) y este valor es muy ineficiente.

 Ejercicio

Ordena de forma ascendente el siguiente arreglo, utilizando el método


por inserción.

Figura 63: Ejercicio de arreglo para ordenamiento por inserción


Fuente: elaboración propia.

Solución

Para ordenar palabras debes considerar cada una de las letras de la palabra.
Revisemos cada uno de los casos:

Perro, es el primer elemento, por lo que solo se inserta.

Gato, la letra de inicio es menor que la letra de inicio del elemento perro, por lo
que debemos incluirlo antes.

Hamster, la letra H se encuentra después de la letra G de gato y antes de la letra


P de perro.

Conejo, la letra C se encuentra antes de la letra G de gato.

Caballo, la letra C de caballo es igual a la letra C de conejo, en este caso,


comparamos la letra que sigue, la letra A de caballo y la letra O de conejo. Como
A es anterior a O, ponemos caballo antes que conejo.

Perico, al igual que el ejemplo anterior, tenemos la letra P de perico que es igual
P de perro. La siguiente letra a comparar es E de perico y E de perro, como
siguen siendo iguales, consideramos la siguiente letra. Comparamos R de
perico y R de perro. Como siguen siendo iguales, continuamos hasta encontrar
una letra diferente. Las siguientes letras para comparar son I de perico y R de
perro, en esta oportunidad, sabemos que I es anterior a R, por lo que ponemos la
palabra perico antes de perro.

PERICO – PERRO (Iguales)

PERICO – PERRO (Iguales)

PERICO – PERRO (Iguales)


PERICO – PERRO (PERI es anterior a PERR)

Figura 64: Solución ejercicio de arreglo para ordenamiento por inserción


Fuente: elaboración propia.

Tema 4. Selección
El ordenamiento por selección establece que, para ordenar un arreglo, se
deben seguir los siguientes 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 menor valor 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.

Si se tiene que ordenar el siguiente arreglo con el método selección, sería


de la siguiente forma:

Figura 65: Ejemplo de arreglo para ordenamiento por selección

Fuente: elaboración propia.

Primero, se tiene que buscar el elemento menor de la lista y reemplazarlo


por el elemento en el primer lugar, índice 0. En este caso, es el número 2:

Figura 66: Ejemplo de arreglo para ordenamiento por selección –


Índice 0
Fuente: elaboración propia.

Ahora, se buscará el siguiente menor, que, para este arreglo, es el 4. Al


estar ya en la segunda posición, índice 1, no se necesita cambiar de lugar.

Figura 67: Ejemplo de arreglo para ordenamiento por selección –


Índice 1

Fuente: elaboración propia.

El tercer menor es el número 5, por lo que se lo intercambiará con el


elemento en la tercera posición, índice 2.
Figura 68: Ejemplo de arreglo para ordenamiento por selección –
Índice 2

Fuente: elaboración propia.

El cuarto menor valor es el 6, al cual se lo intercambiará por el elemento en


el cuarto lugar, índice 3.

Figura 69: Ejemplo de arreglo para ordenamiento por selección –


Índice 3

Fuente: elaboración propia.


El quinto menor valor es el 7 y se lo va a intercambiar por el elemento en el
quinto lugar, índice 4.

Figura 70: Ejemplo de arreglo para ordenamiento por selección –


Índice 4

Fuente: elaboración propia.

El sexto menor valor es el 1 y se lo va a intercambiar por el elemento en el


sexto lugar, índice 5.

Figura 71: Ejemplo de arreglo para ordenamiento por selección –


Índice 5

Fuente: elaboración propia.


Finalmente, el último elemento es el que es mayor a todos; por lo tanto, es
correcto que esté al final del arreglo.

Figura 72: Ejemplo de arreglo para ordenamiento por selección –


Ordenado

Fuente: elaboración propia.

El algoritmo de selección es simple de entender, pero es muy ineficiente


comparado con el algoritmo de ordenamiento de árbol. Tiene la misma

complejidad que los algoritmos burbuja e inserción, esto es: O(n2).

 Ejercicio

Realiza el ordenamiento del siguiente arreglo, utilizando el método por


selección. Considerando que todos los elementos son valores
alfanuméricos.

Figura 73: Ejercicio de arreglo para ordenamiento por selección


Fuente: elaboración propia.

Solución

Cuando tenemos números y caracteres dentro de los elementos, considerando que
los números también pueden ser representados como caracteres, estos van antes
que las letras y son considerados como palabras.

Por ejemplo:
Si queremos ordenar los siguientes números: 20-30-1-21-200, estos valores
ordenados como números quedarían de la siguiente manera: 1 – 20 – 21 – 30 – 200.
Sin embargo, si se ordenan como caracteres, se rigen las mismas reglas que en el
ejercicio pasado, queda: 1 – 20 – 21 – 200 – 30.
Esto sucede porque el 3 va posterior al 2. Intenta realizar este orden dentro de una
planilla Excel, cambiando el tipo de datos de la celda a texto.

Figura 74: Solución ejercicio de arreglo para ordenamiento por selección


Fuente: elaboración propia.
C O NT I NU A R
Lección 4 de 7

Video de habilidades

Verify to continue
We detected a high number of errors from your
connection. To continue, please confirm that
you’re a human (and not a spambot).

I'm not a robot


reCAPTCHA
Privacy - Terms

¿Cómo es la forma correcta de definir un “if” en C++?

if a > b

a>b
if(a > b)

(a > b)

SUBMIT

¿Qué palabra reservada se utiliza en Java para ejecutar un código cuando la


sentencia “if” es falsa?

if.

while.

else.

for.

end.
SUBMIT

En el ejemplo del “if-else” que evalúa los números que son positivos y
negativos, si suponemos que el número 0 no es ninguno de los dos, entonces el
algoritmo no funciona correctamente, es necesario agregar otro “if-else” para
que contemple el caso del número 0 y solo funciona cuando el número que
evalúa no es 0.

Verdadero.

Falso.

SUBMIT

Para recorrer un arreglo de elementos:

Se utiliza una estructura “if” sin el bloque “else”.


Se puede hacerlo con un “for” y no con un “while”.

La mejor forma es con la adaptación del “for” llamada


“foreach”.

SUBMIT

El resultado generado por un “do-while” siempre es igual al de un “while” si el


bloque y la expresión booleana son iguales.

Verdadero.

Falso.

SUBMIT
C O NT I NU A R
Lección 5 de 7

Cierre

Operadores

Estos permiten manipular los datos, existen operadores que necesitan dos variables,
como suma o resta, y otros que pueden manipular solo una variable, como el
aumento en uno.

Arreglos

Son estructuras de datos que permiten almacenar un conjunto de variables del
mismo tipo.

Figura 75: Dibujo arreglo de 5 ítems


Fuente: elaboración propia.
Matrices

Son estructuras de datos que permiten almacenar datos en forma de tabla, en donde
especificamos un índice para la fila y otro para la columna.

Tabla 7: Dibujo matriz 2 filas, 5 columnas.


Fuente: elaboración propia.

Listas

Son secuenciales debido a que cada elemento contiene un puntero hacia el
siguiente elemento. Es por ello que siempre que busquemos un elemento en una
lista, debemos empezar por el primero, ya que este tiene el puntero hacia el segundo.

Figura 76: Estructura de lista de números (simple enlace)


Fuente: [Imagen sin título sobre estructura de lista de números] Con adaptación propia. (s. f.). Recuperada de
https://commons.wikimedia.org/w/index.php?curid=2245162
Algoritmos de ordenamiento

Los algoritmos de ordenamiento son un tipo especial de algoritmo que ordena los
elementos de un arreglo, bajo un criterio específico.
Tienen dos elementos fundamentales:

Los elementos que van a ordenar.

El criterio de ordenamiento.

Algoritmo burbuja

El algoritmo burbuja es uno de los algoritmos más simples (pero también más
ineficientes) de ordenamiento. Se denomina burbuja debido a que los valores más
bajos se hunden hacia el final del arreglo, mientras que los valores más altos suben
como burbujas hacia el inicio del arreglo.

Algoritmo árbol

Este algoritmo utiliza una estructura especial llamada árbol binario para poder
ordenar los elementos dentro de un arreglo u otro tipo de estructura. La estrategia se
basa en construir el árbol, elemento por elemento, los cuales se insertan
directamente de manera ordenada. Luego, se obtienen los elementos recorriendo el
árbol construido.

Algoritmo inserción

El ordenamiento por inserción utiliza el siguiente algoritmo:

1. Tomar el primer elemento del arreglo y copiarlo a un nuevo arreglo.

2. Tomar el segundo elemento y compararlo con el ya existente. En el caso de que


sea menor, colocarlo a la izquierda. En el caso de que sea mayor, colocarlo a la
derecha.

3. Tomar el tercer elemento y realizar la misma evaluación: ubicarlo a la derecha de


aquellos elementos que son mayores y a la izquierda de aquellos que son
menores.

4. Repetir el paso anterior, hasta que no queden elementos en el arreglo original.

5. El resultado es un nuevo arreglo ordenado.

Algoritmo selección

El ordenamiento por selección establece que, para ordenar un arreglo, se deben
seguir los siguientes 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 menor valor 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.

C O NT I NU A R
Lección 6 de 7

Referencias

Gutiérrez Díaz, A. (s. f.). Bases de datos. Recuperado de


https://www.aiu.edu/cursos/base%20de%20datos/pdf%20leccion%201/lecci
%C3%B3n%201.pdf

[Imagen sin título sobre estructura de lista de números - doble enlace].


Con adaptación propia. (s. f.). Recuperada de
https://commons.wikimedia.org/w/index.php?curid=2245165

[Imagen sin título sobre estructura de lista de números]. Con adaptación


propia. (s. f.). Recuperada de https://commons.wikimedia.org/w/index.php?
curid=2245162

Novara, P. (2021). PSeInt [Software intérprete de pseudocódigo]. AR.

Real Academia Española. (s. f.). Nodo [Definición]. En Autor, Diccionario


de la lengua española. Recuperado de https://dle.rae.es/nodo

C O NT I NU A R
Lección 7 de 7

Descargá la lectura

Módulo 3. Estructuras de la programación.pdf


1.6 MB

También podría gustarte