Está en la página 1de 20

1

Bubble Sort &


Complexity
Programación 1

Semana 14
CS1111 - Programación 1 Computer Science

Semana 14
TEORÍA (2 Horas) LABORATORIO (4 Horas )

● Algoritmo de Ordenamiento: ● Ejercicios de Búsqueda Lineal


○ Bubble Sort ● Ejercicios de Búsqueda Binaria
○ Merge Sort ● Ejercicios de Bubble Sort
● Examen Parcial 2 : Semana 15

ASESORÍA (2 Horas) (Opcional) HOMEWORK (4 Horas)

● Ejercicios de Búsqueda y Ordenamiento ● Trabajar en la Tarea 4 (3 Hora)


● Dudas tarea 4 ● Repasar el material del curso (2 Horas)

2
CS1100 - Introducción a Ciencia de la Computación Alan Morante

Índice

Algoritmos de ordenamiento
1. Bubble Sort

3
CS1100 - Introducción a Ciencia de la Computación Alan Morante

0 Repaso

4
CS1100 - Introducción a Ciencia de la Computación Alan Morante

¿Qué vimos la clase pasada?

input → = + → output

● Un algoritmo es un conjunto de instrucciones y reglas seguir.


○ Variables ○ Imágenes
○ Strings ○ Recursión
○ Arrays + Matrix ○ Searching
○ Functions
○ Diccionarios 5
CS1100 - Introducción a Ciencia de la Computación Alan Morante

¿Qué veremos hoy?

input → = + → output

● Un algoritmo es un conjunto de instrucciones y reglas seguir.


○ Variables ○ Imágenes
○ Strings ○ Recursión
○ Arrays + Matrix ○ Searching
○ Functions ○ Bubble Sort
○ Diccionarios 6
Alan Morante
CS1100 - Introducción a Ciencia de la Computación

0 Repaso

7
CS1100 - Introducción a Ciencia de la Computación

Búsqueda Lineal / Linear Search

Linear Search GIF https://www.tutorialspoint.com/data_structures_algorithms/linear_search_algorithm.htm


8
CS1100 - Introducción a Ciencia de la Computación

Búsqueda Binaria / Binary Search

Binary Search GIF from https://brilliant.org/wiki/binary-search/


9
CS1100 - Introducción a Ciencia de la Computación

Linear and Binary Search ( 1 <= n <= 1000 )

10
CS1100 - Introducción a Ciencia de la Computación

Linear and Binary Search

11
CS1100 - Introducción a Ciencia de la Computación Alan Morante

1 Bubble Sort

12
CS1100 - Introducción a Ciencia de la Computación

Bubble Sort / Ordenamiento Burbuja

Bubble Sort https://commons.wikimedia.org/wiki/File:Bubble-sort.gif


13
CS1100 - Introducción a Ciencia de la Computación

Bubble Sort
Programa:
1 def bubble_sort(lista):
2 for tope in range(len(lista)-1, 0, -1):
3 for i in range(tope):
4 if lista[i] > lista[i+1] :
5 temp = lista[i]
6 lista[i] = lista[i+1]
7 lista[i+1] = temp
8
9 lista1 = [54,26,93,17,77,31,44,55,20]
10 bubble_sort(lista1)
11 print(lista1)
14
CS1100 - Introducción a Ciencia de la Computación

Bubble Sort II
Programa:
1 def bubble_sort(lista):
2 n_iter = 0
3 for tope in range(len(lista)-1, 0, -1):
4 for i in range(tope):
5 n_iter += 1
6 if lista[i] > lista[i+1] :
7 temp = lista[i]
8 lista[i] = lista[i+1]
9 lista[i+1] = temp
10 return n_iter

15
CS1100 - Introducción a Ciencia de la Computación

Bubble Sort & Random List


Programa: Programa:
1 def bubble_sort(lista): 1 import random as rd
2 n_iter = 0 2 def generate_list(n):
3 for tope in range(len(lista)-1, 0, -1): 3 random_list = []
4 for i in range(tope): 4 for i in range(n):
5 n_iter += 1 5 n_random = rd.randint(0,n)
6 if lista[i] > lista[i+1] : 6 random_list.append(n_random)
7 temp = lista[i] 7 return random_list
8 lista[i] = lista[i+1]
9 lista[i+1] = temp
10 return n_iter

Programa:
1 lista = generate_list(100)
2 n_iter = bubble_sort(lista, e) 16
CS1100 - Introducción a Ciencia de la Computación

Bubble Sort - Complejidad en Tiempo

17
CS1100 - Introducción a Ciencia de la Computación Alan Morante

POLL
18
CS1100 - Introducción a Ciencia de la Computación Alan Morante

Resumen

● El algoritmo de búsqueda binaria es más eficiente que el de búsqueda


lineal, pero requiere de datos ordenados.
● En el mejor de los casos, ordenar un lista de tamaño n usando
buble sort requiere n iteraciones (es cuando la lista está ordenado).
● En el peor de los casos, ordenar un lista de tamaño n usando
buble sort requiere n2 iteraciones.

19
Gracias

20

También podría gustarte