TEMA: ALGORITMO BUBBLE SORT
MATERIA: LOGICA COMPUTACIONAL
DOCENTE: Ing. Lujan Llanos Iván Carlos
SEMESTRE: PRIMER SEMESTRE
TURNO: Noche PARALELO: A
ESTUDIANTE: Daniel Emerson Condori Mamani
Brayan Huanca Herrera
Carlos Fernando Ramos Chalco
Jhony Alvares Paraya
FECHA: 15-05-25
LA PAZ – BOLIVIA
2025
CONCEPTO DE ARREGLO UNIDIMENCIONAL
Un arreglo unidimensional, también llamado vector, es una estructura de datos
lineal que almacena una colección de elementos del mismo tipo (como números
enteros, decimales, caracteres, etc.) en posiciones contiguas de memoria.
Cada elemento del arreglo se accede mediante un índice numérico, que indica su
posición dentro del arreglo, comenzando normalmente desde el índice 0.
CARACTERÍSTICAS
Tipo de dato: Todos los elementos de un vector deben ser del mismo tipo.
Orden: Los elementos están ordenados y se accede a ellos a través de su índice.
Tamaño: Generalmente, los vectores tienen un tamaño fijo que se define al crear
el vector.
Acceso aleatorio: Se puede acceder a cualquier elemento del vector directamente
a través de su índice, sin necesidad de recorrer los elementos anteriores.
Soporte para operaciones: La mayoría de los lenguajes de programación
proporcionan operaciones para trabajar con vectores, como la suma de elementos,
la búsqueda, la ordenación, etc.
Declaración:
En la mayoría de los lenguajes de programación, se declara especificando el tipo
de dato, el nombre del arreglo y su tamaño (número de elementos).
Inicialización:
Asignación individual: Se puede asignar un valor a cada elemento usando
su índice.
Inicialización al declarar: Al declarar, se puede inicializar el arreglo con una
lista de valores, separados por comas, dentro de llaves.
Sintaxis general (en pseudocódigo/PSeInt):
Ejemplo en PSeInt:
MÉTODO DE ORDENAMIENTO
- Que es ordenamiento
En informática, el ordenamiento (también conocido como sorting) es el proceso de
organizar datos en un orden específico, como ascendente o descendente,
alfabético o numérico. Es una tarea fundamental en muchas aplicaciones, desde la
búsqueda hasta la gestión de grandes cantidades de datos.
El proceso de ordenamiento:
Reagrupamiento de datos:
Implica mover elementos de un conjunto de datos para que estén en una
secuencia específica.
Secuencia específica:
Puede ser numérica (1, 2, 3...) o alfabética (A, B, C...), ascendente o
descendente, y puede ser aplicado a cualquier tipo de dato.
-Que es el algoritmo de ordenamiento
En computación y matemáticas un algoritmo de ordenamiento es un algoritmo que
pone elementos de una lista o un vector en una secuencia dada por una relación
de orden, es decir, el resultado de salida ha de ser una permutación o
reordenamiento de la entrada que satisfaga la relación de orden dada.
Las relaciones de orden más usadas son el orden numérico y el orden
lexicográfico. Ordenamientos eficientes son importantes para optimizar el uso de
otros algoritmos (como los de búsqueda y fusión) que requieren listas ordenadas
para una ejecución rápida.
También es útil para poner datos en forma canónica y para generar resultados
legibles por humanos.
Un algoritmo de ordenación es un método para reorganizar un conjunto de datos
(como un arreglo o lista) en un orden específico (ascendente o descendente).
Ejemplos comunes incluyen:
Bubble Sort (Burbuja)
Selection Sort (Selección)
Insertion Sort (Inserción)
Método de Ordenamiento Shell
Merge Sort (Mezcla)
Quick Sort (Rápido)
- Que es el algoritmo de ordenación de la Burbuja (BubbleSort)
El ordenamiento de burbuja es un algoritmo que te permite ordenar valores de un
arreglo. Funciona revisando cada elemento con su adyacente. Si ambos
elementos no están ordenados, se procede a intercambiarlos, si por el contrario
los elementos ya estaban ordenados se dejan tal como estaban. Este proceso
sigue para cada elemento del arreglo hasta que quede completamente ordenado.
- Porque los algoritmos de ordenación son importantes
Los algoritmos de ordenación son fundamentales en informática porque permiten
organizar datos de manera eficiente y ordenada, lo que facilita la búsqueda,
gestión y análisis de información. Además, son esenciales para la optimización de
otros algoritmos, como los de búsqueda, y para la generación de resultados
legibles por humanos.
Mejoran la eficiencia en búsquedas (ej: Binary Search requiere datos
ordenados).
Optimizan el manejo de grandes volúmenes de datos.
Son fundamentales en bases de datos, inteligencia artificial y
procesamiento de información.
Explicación del algoritmo
[5, 1, 4, 2, 8]
Aquí te presento los pasos del Bubble Sort:
Recorrido 2:
1. Paso 1: Comparamos el primer elemento (5) con el segundo elemento (1).
Como 5 es mayor que 1, los intercambiamos.
[1, 5, 4, 2, 8]
2. Paso 2: Comparamos el segundo elemento actual (5) con el tercero (4).
Como 5 es mayor que 4, los intercambiamos.
[1, 4, 5, 2, 8]
3. Paso 3: Comparamos el tercer elemento actual (5) con el cuarto (2). Como
5 es mayor que 2, los intercambiamos.
[1, 4, 2, 5, 8]
4. Paso 4: Comparamos el cuarto elemento actual (5) con el quinto (8). Como
5 es menor que 8, no los intercambiamos.
[1, 4, 2, 5, 8]
Al final de la primera pasada, el elemento más grande (8) ya está en su posición
correcta al final del array.
Recorrido 2:
Ahora repetimos el proceso, pero ya no necesitamos comparar el último elemento,
ya que sabemos que está ordenado.
1. Paso 1: Comparamos el primer elemento (1) con el segundo (4). Como 1 es
menor que 4, no los intercambiamos.
[1, 4, 2, 5, 8]
2. Paso 2: Comparamos el segundo elemento actual (4) con el tercero (2).
Como 4 es mayor que 2, los intercambiamos.
[1, 2, 4, 5, 8]
3. Paso 3: Comparamos el tercer elemento actual (4) con el cuarto (5). Como
4 es menor que 5, no los intercambiamos.
[1, 2, 4, 5, 8]
Al final de la segunda pasada, el segundo elemento más grande (5) también está
en su posición correcta.
Recorrido 3:
1. Paso 1: Comparamos el primer elemento (1) con el segundo (2). Como 1 es
menor que 2, no los intercambiamos.
[1, 2, 4, 5, 8]
2. Paso 2: Comparamos el segundo elemento actual (2) con el tercero (4).
Como 2 es menor que 4, no los intercambiamos.
[1, 2, 4, 5, 8]
Al final de la tercera pasada, el tercer elemento más grande (4) está en su lugar.
Recorrido 4:
1. Paso 1: Comparamos el primer elemento (1) con el segundo (2). Como 1 es
menor que 2, no los intercambiamos.
[1, 2, 4, 5, 8]
En esta última pasada, los dos primeros elementos también están en su orden
correcto. Después de estas pasadas, el array está completamente ordenado:
[1, 2, 4, 5, 8]
Ventajas
Sencillez de implementar: Es uno de los algoritmos de ordenamiento más fáciles
de entender y codificar
Fácil detección de listas ordenadas: El Bubble Sort puede detectar eficientemente
si una lista ya está ordenada en una sola pasada. Si no se realiza ningún
intercambio durante una iteración completa, significa que la lista está ordenada.
Estabilidad: El Bubble Sort es un algoritmo de ordenamiento estable. Esto significa
que, si hay elementos con el mismo valor en la lista, su orden relativo original se
mantiene después de la ordenación.
Poco espacio de memoria adicional requerido: El Bubble Sort es un algoritmo de
ordenamiento "in-place", lo que significa que requiere una cantidad mínima de
espacio de memoria adicional más allá de la lista original que se está ordenando.
Adaptativo para listas casi ordenadas: Si una lista ya está casi ordenada, el
Bubble Sort puede ordenar los elementos restantes relativamente rápido. En estos
casos, el número de recorridos necesarios para ordenar completamente la lista
será menor que en el peor caso.
Desventajas
Ineficiencia para grandes conjuntos de datos: El tiempo de ejecución aumenta
drásticamente a medida que crece el tamaño de la entrada.
Muchas comparaciones: En cada recorrido, compara elementos adyacentes
incluso si ya están en la posición correcta.
Muchos intercambios: El Bubble Sort realiza una gran cantidad de intercambios de
elementos. Cada intercambio implica tres operaciones de asignación, lo que
contribuye a su ineficiencia.
El "efecto tortuga": Los elementos pequeños que se encuentran cerca del final de
la lista se mueven hacia su posición correcta muy lentamente, un paso a la vez.
No es adecuado para aplicaciones en tiempo real o críticas: Debido a su
rendimiento impredecible y potencialmente lento para grandes conjuntos de datos,
el Bubble Sort generalmente no es una buena opción para aplicaciones donde el
tiempo de respuesta es crítico o donde se manejan grandes volúmenes de
información.
Ejemplo en pseint
Realizar un algoritmo para ordenar 5 números ingresados desde teclado.
Conclusiones
En conclusión, podemos comprender la lógica que hay detrás de este algoritmo es
útil para poder implementarlo en cualquier otro lenguaje de programación.
Y también podemos apreciar que este algoritmo no es el más eficiente a la hora de
ordenar. Existen mejores alternativas como Ordenamiento por
Selección ,Quicksort u Ordenamiento por Inserción.