SlideShare una empresa de Scribd logo
1 de 53
Descargar para leer sin conexión
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
B´usquedas y Ordenamientos
Docentes de Programaci´on
Editado por Angel V´azquez-Pati˜no
angel.vazquezp@ucuenca.edu.ec
Departamento de Ciencias de la Computaci´on
Universidad de Cuenca
19 de septiembre de 2017
1 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Objetivos
1. Entender los algoritmos de b´usqueda
2. Entender los algoritmos de ordenamiento
3. Conocer el concepto de eficiencia
4. Tener una idea intuitiva de la eficiencia de los
algoritmos estudiados
2 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Contenido
Algoritmos de b´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Algoritmos de ordenamiento
Utilidad
Clasificaci´on
Algoritmo de ordenamiento de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Ordenamiento de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Fuentes
3 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Utilidad I
Uno de los usos m´as frecuentes de los computadores
es la b´usqueda de informaci´on en estructuras de
datos. La eficiencia de la b´usqueda depende de si la
estructura est´a o no ordenada. E.g., diccionario
Tome un diccionario y b´usque la palabra mundo.
Para encontrarla, ir´a directamente a la secci´on de
palabras que comienzan con m. Luego buscar´a
tomando la siguiente letra de la palabra (u), luego
la n y as´ı sucesivamente. Esto lo puede hacer
porque el diccionario se encuentra ordenado
(b´usqueda binaria)
4 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Utilidad II
Si el diccionario no estuviera ordenado se podr´ıa
tambi´en buscar la palabra recorriendo cada una de
las hojas y revisando cada una de las palabras que
se encuentren en esa hoja. Esto tardar´ıa mucho m´as
(menos eficiencia)(b´usqueda secuencial)
Los tipos de b´usquedas a estudiar tienen semejanza
con los ejemplos dados
5 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
B´usqueda secuencial o lineal
1. Consiste en empezar desde el inicio del arreglo e ir a
trav´es de cada elemento hasta encontrar el valor
buscado o hasta llegar al final
2. El arreglo no requiere estar ordenado
B´usqueda secuencial en arreglos
1. V´ıdeo: https://youtu.be/W3ClRnYb0KM
6 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo
7 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
B´usqueda binaria o dicot´omica I
Condiciones
1. La estructura debe estar ordenada (ascendente o
descendentemente)
2. Conocer el n´umero de elementos de la estructura
8 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
B´usqueda binaria o dicot´omica II
Algoritmo (orden ascendente)
1. Se compara el valor buscado con el valor localizado
al centro del arreglo
2. Si el valor buscado es localizado, se termina la
b´usqueda
3. Si el valor buscado es menor que el analizado,
repetir proceso en la mitad inferior, sino en la mitad
superior
4. El proceso de partir por la mitad la estructura se
repite hasta encontrar el valor o hasta que el
tama˜no de la estructura restante sea cero (i.e.,
valor no encontrado)
9 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
B´usqueda binaria o dicot´omica III
M´etodo de b´usqueda binaria
1. V´ıdeo 1: https://youtu.be/7qv1An90q2Q
2. V´ıdeo 2: https://youtu.be/7oa1qEPLFps
10 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo
11 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ejercicios
Dado el conjunto de n´umeros 23, 12, 44, 9, 3, 8, 1,
7, 0, 2, 4, 55 indique el n´umero de comparaciones
que se deben hacer para encontrar el n´umero 1
utilizando b´usqueda secuencial.
Tome el conjunto de n´umeros dados y utilize la
b´usqueda binaria para encontrar el n´umero 1.
Indique el n´umero de comparaciones realizadas.
Revise los ejercicios propuestos en el documento de
Ejercicios B´asicos de Programaci´on.
12 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Eficiencia
¿En qu´e sentido un algoritmo de b´usqueda es m´as
eficiente que otro?
13 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Eficiencia
¿En qu´e sentido un algoritmo de b´usqueda es m´as
eficiente que otro?
¡Comparaciones!
14 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Eficiencia: b´usqueda secuencial
En el mejor caso se encontrar´a el valor en el primer
elemento.
En el peor caso se har´an n comparaciones.
El orden de complejidad en el peor caso ser´ıa O(n).
15 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Eficiencia: b´usqueda binaria I
En el mejor caso se encontrar´a el valor en el
elemento del medio (una comparaci´on).
Se har´a el an´alisis para el peor caso.
Inicialmente el n´umero de elementos a analizar es n.
Tras la primera divisi´on, el n´umero de elementos que
queda por analizar es, como mucho, n/2 (pues nos
hemos quedado con la mitad de elementos); tras la
segunda divisi´on, el n´umero de elementos que queda
ser´a, como mucho, n/4; y as´ı sucesivamente.
Por lo general, tras la divisi´on n´umero i, el n´umero
de elementos por analizar ser´a, como mucho,
n
2i
16 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Eficiencia: b´usqueda binaria II
El peor caso se da cuando el elemento a buscar no
se encuentra en el vector (es decir, cuando tras
dividir los elementos por analizar nos quedemos con
un n´umero menor a 1). Por lo tanto, el n´umero
m´aximo de divisiones a realizar es el menor n´umero
m tal que
n
2m
< 1
Transformando esta f´ormula a un logaritmo en base
2:
n < 2m
log2 n < m
es decir, que el n´umero m depende, no del tama˜no
n del arreglo, sino del logaritmo de dicho n.
17 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Eficiencia: b´usqueda binaria III
Es por esto que el algoritmo de b´usqueda binaria
tiene una complejidad de orden logar´ıtmico
O(log2n).
18 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Eficiencia: b´usqueda secuencial vs binaria
19 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmos de ordenamiento
Definition (Ordenamiento)
Reorganizar elementos de tal manera que cumplan con
un criterio establecido.
e1 < e2 < e3 . . . < en → Ascendente
e1 > e2 > e3 . . . > en → Descendente
20 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Utilidad
Los datos ordenados son f´aciles de encontrar, esto
implica menos operaciones y menos tiempo
(eficiencia).
Existen varios algoritmos de ordenamiento que,
dependiendo de la estrategia, servir´an en mayor o
menor grado para ordenar elementos.
Que un algoritmo sea ingenioso, en este contexto,
significa que ordena el conjunto desordenado con el
menor n´umero posible de comparaciones e
intercambios.
21 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Clasificaci´on de los algoritmos de
ordenamiento
De acuerdo a la memoria utilizada
Internos: cuando la memoria RAM es suficiente
para el procesamiento
Externos: cuando hace falta enviar cantidades de
informaci´on desde la memoria RAM a disco duro.
Esto puede repetirse varias veces
De acuerdo a la estrategia utilizada
B´asicos: burbuja, selecci´on e inserci´on
Eficientes: shell sort, quick sort, radix sort, merge
sort, heap sort, etc.
22 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja I
Idea
Tomar el elemento de mayor valor de un arreglo y
llevarlo al final (ordenamiento ascendente); y esto
repetirlo a todos los elementos
Porqu´e del nombre
Alguien se imagin´o que el elemento que se va
desplazando es como si una burbuja subiera desde el
fondo del agua
23 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja II
Estrategia
1. Recorrer el arreglo desde el elemento 0 con un
iterador i.
2. En cada paso preguntar si el elemento i+1 es menor
al elemento i (ordenamiento ascendente). Si es as´ı,
se intercambian los elementos.
3. As´ı, el elemento mayor quedar´a en el ´ındice mayor
4. Una vez que se llegue al ´ultimo elemento del
arreglo, se comienza de nuevo con el paso 1.
5. Se repite hasta que no haya ning´un intercambio de
elementos.
Algoritmo de burbuja
24 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja III
1. V´ıdeo: https://youtu.be/L3d48etbseY
Pseudoc´odigo
1: for i = 1 hasta n do
2: for j = 0 hasta n-i do
3: if arreglo[j] > arreglo[j+1] then
4: intercambiar(arreglo[j], arreglo[j+1]);
5: end if
6: end for
7: end for
25 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ejemplo, ordenamiento de burbuja
Orden ascendente
26 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ejercicios
Usando el m´etodo de la burbuja, ordene
descendentemente el siguiente conjunto de
n´umeros: 9, 3, 8, 1, 7, 0, 2, 4. Indique el n´umero de
pasadas realizadas.
Usando el m´etodo de la burbuja, ordene
ascendentemente el siguiente conjunto de n´umeros:
8, 2, 99, 21, 45, 9, 23. Indique el n´umero de
pasadas realizadas.
Revise los ejercicios propuestos en el documento de
Ejercicios B´asicos de Programaci´on.
27 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de selecci´on I
Estrategia
1. Se busca el menor de todos los elementos y se le
ubica en la primera posici´on del arreglo.
2. Se busca el menor de entre los elementos que
quedan y se lo intercambia con el primer elemento
del arreglo que queda.
3. Se repite el proceso para todos los elementos del
arreglo.
Algoritmo de selecci´on
1. V´ıdeo 1: https://youtu.be/l0YwcUJB3vo
2. V´ıdeo 2: https://youtu.be/KCvr7eHXEHE
28 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de selecci´on II
Pseudoc´odigo
1: for i = 0 hasta n-2 do
2: m´ınimo = i;
3: for j = i+1 hasta n-1 do
4: if arreglo[j] < arreglo[m´ınimo] then
5: m´ınimo = j;
6: end if
7: end for
8: intercambiar(arreglo[i], arreglo[m´ınimo]);
9: end for
29 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ejemplo, algoritmo de selecci´on
Orden ascendente
30 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ejercicios
1. Ordene, ascendentemente y descendentemente,
usando el algoritmo de selecci´on, el siguiente
conjunto de n´umeros: 6, 2, 11, 23, 1, 5, 4. Indique
el n´umero de pasadas realizadas.
2. Ordene, ascendentemente y descendentemente,
usando el algoritmo de selecci´on, el siguiente
conjunto de letras: K, M, S, C, E, W, P, Q . Indique
el n´umero de pasadas realizadas.
3. Revise los ejercicios propuestos en el documento de
Ejercicios B´asicos de Programaci´on.
31 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de inserci´on I
Estrategia
1. Se toma el primer elemento del arreglo como el
primer elemento de lo que llamaremos el arreglo
ordenado.
2. Se toma el pr´oximo n´umero del arreglo y se
compara con los elementos del arreglo ordenado,
hasta encontrar su posici´on.
3. Se repite el proceso para todos los elementos del
arreglo.
Algoritmo de inserci´on
32 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de inserci´on II
1. V´ıdeo 1: https://youtu.be/5kVQ8kf52K4
2. V´ıdeo 2: https://youtu.be/a7g7Z5dMdgQ
Pseudoc´odigo
1: for i = 1 hasta n-1 do
2: j = i;
3: while j > 0 and arreglo[j-1] > arreglo[j] do
4: intercambiar(arreglo[j], arreglo[j-1]);
5: j = j-1;
6: end while
7: end for
33 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ejemplo, algoritmo de inserci´on
Orden ascendente
34 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ejercicios
1. Ordene, ascendentemente y descendentemente,
usando inserci´on, el siguiente conjunto de n´umeros:
8, 3, 2, 9, 10, 7, 1, 4, 5. Indique las pasadas
realizadas.
2. Ordene, ascendentemente y descendentemente,
usando inserci´on, el siguiente conjunto de letras: J,
M, A, E, W, Q, P, R, M, B,X. Indique el n´umero de
pasadas realizadas.
3. Revise los ejercicios propuestos en el documento de
Ejercicios B´asicos de Programaci´on.
35 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Eficiencia
¿En qu´e sentido un algoritmo de ordenamiento es m´as
eficiente que otro?
36 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Eficiencia
¿En qu´e sentido un algoritmo de ordenamiento es m´as
eficiente que otro?
¡Comparaciones e intercambios!
37 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja I
Comparaciones
Para ordenar un arreglo de n elementos, el n´umero
de comparaciones siempre es:
c(n) = (n −1)+(n −2)+· · ·+2+1 =
n × (n − 1)
2
c(n) no depende del orden de los t´erminos, sino del
n´umero de t´erminos:
O(c(n)) = n2
Por lo tanto la cota ajustada asint´otica del n´umero
de comparaciones pertenece al orden de n cuadrado.
38 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja II
Intercambios
39 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja III
El n´umero de intercambios i(n), que hay que
realizar depende del orden de los t´erminos y
podemos diferenciar el mejor y peor caso.
Definition (mejor caso)
Si el arreglo est´a previamente ordenado.
Definition (peor caso)
Si el arreglo est´a previamente ordenado en orden inverso.
Se puede determinar una cota ajustada asint´otica
del n´umero de intercambios, dado que ´este
depender´a del orden del vector en cuesti´on.
O(i(n)) =?
40 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja: peor caso I
Si se pasa al algoritmo un arreglo ordenado en orden
inverso realizar´a un n´umero de comparaciones
c(n) =
n2
− n
2
y tendr´a que realizar un n´umero igual de intercambios
entre los t´erminos del arreglo, dado que en cada
comparaci´on los t´erminos estar´an desordenados, y se
realizar´a el intercambio.
i(n) =
n2
− n
2
Por lo tanto en el caso m´as desfavorable tanto el n´umero
de comparaciones como el de intercambios coinciden:
41 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja: peor caso II
O(c(n)) = O(i(n)) = n2
El n´umero de comparaciones y de intercambios, en el
peor caso, pertenece al orden de n cuadrado.
42 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja: mejor caso I
En el mejor caso el n´umero de comparaciones ser´a el
mismo que en cualquier otro caso:
Ω(c(n)) = n2
La cota inferior asint´otica del n´umero de comparaciones
pertenece al orden de n cuadrado, como en los dem´as
casos, pero en todas las comparaciones el orden es el
correcto y por tanto no se realiza ning´un intercambio:
i(n) = 0
Por lo tanto el coste de intercambios no depende de n, y
es constante:
Ω(i(n)) = 1
43 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Ordenamiento de burbuja: mejor caso II
A tener en cuenta
El ordenamiento de burbuja tiene una complejidad
Ω(n2
) igual que el algoritmo de selecci´on.
Cuando un arreglo ya est´a ordenado, a diferencia
del algoritmo de inserci´on, que pasar´a por el arreglo
una vez y encontrar´a que no hay necesidad de
intercambiar las posiciones de los elementos, el
ordenamiento de burbuja est´a forzado a pasar por
dichas comparaciones, esto hace que su complejidad
sea cuadr´atica, incluso en el mejor de los casos.
El ordenamiento de burbuja se cataloga como el
algoritmo m´as ineficiente que existe.
44 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de selecci´on I
Comparaciones
Para ordenar un arreglo de n elementos, el n´umero
de comparaciones siempre es:
c(n) = (n −1)+(n −2)+· · ·+2+1 =
n × (n − 1)
2
c(n) no depende del orden de los t´erminos, sino del
n´umero de t´erminos.
O(c(n)) = n2
Por lo tanto la cota ajustada asint´otica del n´umero
de comparaciones pertenece al orden de n cuadrado.
45 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de selecci´on II
Intercambios
El n´umero de intercambios i(n) tambi´en es fijo.
T´engase en cuenta que la instrucci´on de
intercambio siempre se ejecuta.
i(n) = n
Definition (mejor caso)
Si el arreglo est´a previamente ordenado.
Definition (peor caso)
Si el arreglo est´a previamente ordenado en orden inverso.
46 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de selecci´on III
sea cual sea el arreglo, y el orden de sus elementos,
lo que implica en todos los casos un coste lineal:
O(i(n)) = n
la cota ajustada asint´otica del n´umero de
intercambios es lineal, del orden de n.
La f´ormula que representa el rendimiento del
algoritmo, viene dada por
c(n) =
n2
+ n
2
47 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de inserci´on I
Eficiencia
Depende del n´umero de comparaciones y del n´umero de
copias que el algoritmo requiere.
Comparaciones
En la primera pasada, se compara un m´aximo de un
´ıtem. En la segunda pasada, se compara un m´aximo
de dos ´ıtems, y as´ı hasta un m´aximo de n − 1
comparaciones en la ´ultima pasada. Esto es
1 + 2 + 3 + . . . + (n − 1) =
n × (n − 1)
2
48 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de inserci´on II
Sin embargo, ya que en cada pasada un promedio
de solamente la mitad del n´umero m´aximo de ´ıtems
son realmente comparados antes de que se
encuentre el punto de inserci´on, se puede dividir
este n´umero entre dos, lo que da
n × (n − 1)
4
N´umero de copias
49 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de inserci´on III
El n´umero de copias es aproximadamente el mismo
que el n´umero de comparaciones. Sin embargo, una
copia no consume tanto tiempo como un
intercambio, as´ı que para datos aleatorios este
algoritmo corre dos veces m´as r´apido que el
algoritmo de burbuja y m´as r´apido que el algoritmo
de selecci´on.
En cualquier caso, el algoritmo de inserci´on corre en
O(n2
) en tiempo para datos aleatorios.
50 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de inserci´on IV
Para datos que est´an ya ordenados o casi
ordenados, el algoritmo de inserci´on es mejor.
Cuando los datos est´an en orden, la condici´on en el
while nunca es verdadera, lo que ejecuta n-1 veces.
En este caso el algoritmo corre en O(n) en tiempo.
Si los datos est´an casi ordenados, el algoritmo corre
casi en O(n) en tiempo, lo que lo hace una manera
simple y eficiente para ordenar un archivo que est´a
s´olo un poco fuera de orden.
Sin embargo, para datos que est´an en orden inverso,
toda posible comparaci´on y desplazamiento se lleva
a cabo, as´ı que el algoritmo no corre m´as r´apido
que el algoritmo de burbuja.
51 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Algoritmo de inserci´on V
Revise eso utilizando la opci´on reverse-sorted en el
applet InsertSort Workshop
(http://cs.brynmawr.edu/Courses/cs206/
spring2004/lafore.html).
52 / 53
B´usquedas y
Ordenamientos
Angel
V´azquez-Pati˜no
B´usqueda
Utilidad
B´usqueda secuencial
B´usqueda binaria
Eficiencia
Ordenamiento
Utilidad
Clasificaci´on
Algoritmo de burbuja
Algoritmo de selecci´on
Algoritmo de inserci´on
Eficiencia
Burbuja
Selecci´on
Inserci´on
Fuentes
Fuentes
Libros
• Lafore, R., 2003. Data structures & algorithms in
Java, 2nd ed. Sams, Indianapolis, USA. Cap´ıtulos 2
y 3. (Disponible en la biblioteca)
• Deitel, P.J., Deitel, H.M., 2012. Java: How to
Program, 9th ed. Prentice Hall, Upper Saddle River,
N.J. Cap´ıtulo 19. (Disponible en la biblioteca)
53 / 53

Más contenido relacionado

Más de Angel Vázquez Patiño

Métodos de resolución de EDOs mediante series
Métodos de resolución de EDOs mediante seriesMétodos de resolución de EDOs mediante series
Métodos de resolución de EDOs mediante seriesAngel Vázquez Patiño
 
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...Angel Vázquez Patiño
 
Problemas que originan sistemas de ecuaciones
Problemas que originan sistemas de ecuacionesProblemas que originan sistemas de ecuaciones
Problemas que originan sistemas de ecuacionesAngel Vázquez Patiño
 
Linealización de sistemas de primer orden
Linealización de sistemas de primer ordenLinealización de sistemas de primer orden
Linealización de sistemas de primer ordenAngel Vázquez Patiño
 
Fundamentos de Computación y Programación
Fundamentos de Computación y ProgramaciónFundamentos de Computación y Programación
Fundamentos de Computación y ProgramaciónAngel Vázquez Patiño
 
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...Angel Vázquez Patiño
 
Caracterización básica del río Tomebamba, Cuenca, Ecuador
Caracterización básica del río Tomebamba, Cuenca, EcuadorCaracterización básica del río Tomebamba, Cuenca, Ecuador
Caracterización básica del río Tomebamba, Cuenca, EcuadorAngel Vázquez Patiño
 
Comparación de redes causales climáticas mslp vs ght y tpw vs omega
Comparación de redes causales climáticas mslp vs ght y tpw vs omegaComparación de redes causales climáticas mslp vs ght y tpw vs omega
Comparación de redes causales climáticas mslp vs ght y tpw vs omegaAngel Vázquez Patiño
 
Evaluación de índices de clima extremo de datos los modelos de clima global d...
Evaluación de índices de clima extremo de datos los modelos de clima global d...Evaluación de índices de clima extremo de datos los modelos de clima global d...
Evaluación de índices de clima extremo de datos los modelos de clima global d...Angel Vázquez Patiño
 
Machine learning: evaluación de hipótesis
Machine learning: evaluación de hipótesisMachine learning: evaluación de hipótesis
Machine learning: evaluación de hipótesisAngel Vázquez Patiño
 
Machine learning: evaluación de hipótesis
Machine learning: evaluación de hipótesisMachine learning: evaluación de hipótesis
Machine learning: evaluación de hipótesisAngel Vázquez Patiño
 
Machine learning: aprendizaje basado en árboles de decisión
Machine learning: aprendizaje basado en árboles de decisiónMachine learning: aprendizaje basado en árboles de decisión
Machine learning: aprendizaje basado en árboles de decisiónAngel Vázquez Patiño
 

Más de Angel Vázquez Patiño (20)

La ecuación diferencial de Legendre
La ecuación diferencial de LegendreLa ecuación diferencial de Legendre
La ecuación diferencial de Legendre
 
Solución en series de y' = f(x,y)
Solución en series de y' = f(x,y)Solución en series de y' = f(x,y)
Solución en series de y' = f(x,y)
 
Métodos de resolución de EDOs mediante series
Métodos de resolución de EDOs mediante seriesMétodos de resolución de EDOs mediante series
Métodos de resolución de EDOs mediante series
 
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
Solución en series de EDOs no lineales de orden mayor a uno y de un sistema d...
 
Problemas que originan sistemas de ecuaciones
Problemas que originan sistemas de ecuacionesProblemas que originan sistemas de ecuaciones
Problemas que originan sistemas de ecuaciones
 
Linealización de sistemas de primer orden
Linealización de sistemas de primer ordenLinealización de sistemas de primer orden
Linealización de sistemas de primer orden
 
Sistemas de EDOs
Sistemas de EDOsSistemas de EDOs
Sistemas de EDOs
 
Método de la secante
Método de la secanteMétodo de la secante
Método de la secante
 
Iteraciones de punto fijo
Iteraciones de punto fijoIteraciones de punto fijo
Iteraciones de punto fijo
 
Objetos y variables en Python
Objetos y variables en PythonObjetos y variables en Python
Objetos y variables en Python
 
Definiciones de Error
Definiciones de ErrorDefiniciones de Error
Definiciones de Error
 
Fundamentos de Computación y Programación
Fundamentos de Computación y ProgramaciónFundamentos de Computación y Programación
Fundamentos de Computación y Programación
 
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
Causality Strength Signatures for Measuring GCMs Performance: The South Ameri...
 
Caracterización básica del río Tomebamba, Cuenca, Ecuador
Caracterización básica del río Tomebamba, Cuenca, EcuadorCaracterización básica del río Tomebamba, Cuenca, Ecuador
Caracterización básica del río Tomebamba, Cuenca, Ecuador
 
Comparación de redes causales climáticas mslp vs ght y tpw vs omega
Comparación de redes causales climáticas mslp vs ght y tpw vs omegaComparación de redes causales climáticas mslp vs ght y tpw vs omega
Comparación de redes causales climáticas mslp vs ght y tpw vs omega
 
Evaluación de índices de clima extremo de datos los modelos de clima global d...
Evaluación de índices de clima extremo de datos los modelos de clima global d...Evaluación de índices de clima extremo de datos los modelos de clima global d...
Evaluación de índices de clima extremo de datos los modelos de clima global d...
 
Machine learning: evaluación de hipótesis
Machine learning: evaluación de hipótesisMachine learning: evaluación de hipótesis
Machine learning: evaluación de hipótesis
 
Machine learning: evaluación de hipótesis
Machine learning: evaluación de hipótesisMachine learning: evaluación de hipótesis
Machine learning: evaluación de hipótesis
 
Machine learning: aprendizaje basado en árboles de decisión
Machine learning: aprendizaje basado en árboles de decisiónMachine learning: aprendizaje basado en árboles de decisión
Machine learning: aprendizaje basado en árboles de decisión
 
Machine learning: presentación
Machine learning: presentaciónMachine learning: presentación
Machine learning: presentación
 

Último

01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.pptoscarvielma45
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologicaJUDITHYEMELINHUARIPA
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023RonaldoPaucarMontes
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesCarlosMeraz16
 
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdfJM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdfMiguelArango21
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...GuillermoRodriguez239462
 
introducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesintroducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesgovovo2388
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCarlosGabriel96
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfdanielJAlejosC
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Dr. Edwin Hernandez
 
MANTENIBILIDAD Y CONFIABILIDAD DE LOS SISTEMAS MECANICOS
MANTENIBILIDAD Y CONFIABILIDAD DE LOS SISTEMAS MECANICOSMANTENIBILIDAD Y CONFIABILIDAD DE LOS SISTEMAS MECANICOS
MANTENIBILIDAD Y CONFIABILIDAD DE LOS SISTEMAS MECANICOSRicardo Chegwin
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfbcondort
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacionesRamon Bartolozzi
 
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfMODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfvladimirpaucarmontes
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfRonaldLozano11
 
Ejemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosEjemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosMARGARITAMARIAFERNAN1
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTElisaLen4
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOFritz Rebaza Latoche
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATevercoyla
 

Último (20)

01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica2. Cristaloquimica. ingenieria geologica
2. Cristaloquimica. ingenieria geologica
 
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
COMPEDIOS ESTADISTICOS DE PERU EN EL 2023
 
nomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestacionesnomenclatura de equipo electrico en subestaciones
nomenclatura de equipo electrico en subestaciones
 
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdfJM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
JM HIDROGENO VERDE- OXI-HIDROGENO en calderas - julio 17 del 2023.pdf
 
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
Resistencia-a-los-antimicrobianos--laboratorio-al-cuidado-del-paciente_Marcel...
 
introducción a las comunicaciones satelitales
introducción a las comunicaciones satelitalesintroducción a las comunicaciones satelitales
introducción a las comunicaciones satelitales
 
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptxCALCULO DE ENGRANAJES RECTOS SB-2024.pptx
CALCULO DE ENGRANAJES RECTOS SB-2024.pptx
 
Maquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdfMaquinaria Agricola utilizada en la produccion de Piña.pdf
Maquinaria Agricola utilizada en la produccion de Piña.pdf
 
Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...Propuesta para la creación de un Centro de Innovación para la Refundación ...
Propuesta para la creación de un Centro de Innovación para la Refundación ...
 
MANTENIBILIDAD Y CONFIABILIDAD DE LOS SISTEMAS MECANICOS
MANTENIBILIDAD Y CONFIABILIDAD DE LOS SISTEMAS MECANICOSMANTENIBILIDAD Y CONFIABILIDAD DE LOS SISTEMAS MECANICOS
MANTENIBILIDAD Y CONFIABILIDAD DE LOS SISTEMAS MECANICOS
 
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdfLA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
LA APLICACIÓN DE LAS PROPIEDADES TEXTUALES A LOS TEXTOS.pdf
 
libro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operacioneslibro de ingeniería de petróleos y operaciones
libro de ingeniería de petróleos y operaciones
 
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdfMODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
MODIFICADO - CAPITULO II DISEÑO SISMORRESISTENTE DE VIGAS Y COLUMNAS.pdf
 
Desigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdfDesigualdades e inecuaciones-convertido.pdf
Desigualdades e inecuaciones-convertido.pdf
 
Ejemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - EjerciciosEjemplos de cadenas de Markov - Ejercicios
Ejemplos de cadenas de Markov - Ejercicios
 
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHTAPORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
APORTES A LA ARQUITECTURA DE WALTER GROPIUS Y FRANK LLOYD WRIGHT
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADOPERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
PERFORACIÓN Y VOLADURA EN MINERÍA APLICADO
 
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNATINSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
INSUMOS QUIMICOS Y BIENES FISCALIZADOS POR LA SUNAT
 

Programación 1: búsquedas y ordenamientos

  • 1. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes B´usquedas y Ordenamientos Docentes de Programaci´on Editado por Angel V´azquez-Pati˜no angel.vazquezp@ucuenca.edu.ec Departamento de Ciencias de la Computaci´on Universidad de Cuenca 19 de septiembre de 2017 1 / 53
  • 2. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Objetivos 1. Entender los algoritmos de b´usqueda 2. Entender los algoritmos de ordenamiento 3. Conocer el concepto de eficiencia 4. Tener una idea intuitiva de la eficiencia de los algoritmos estudiados 2 / 53
  • 3. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Contenido Algoritmos de b´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Algoritmos de ordenamiento Utilidad Clasificaci´on Algoritmo de ordenamiento de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Ordenamiento de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Fuentes 3 / 53
  • 4. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Utilidad I Uno de los usos m´as frecuentes de los computadores es la b´usqueda de informaci´on en estructuras de datos. La eficiencia de la b´usqueda depende de si la estructura est´a o no ordenada. E.g., diccionario Tome un diccionario y b´usque la palabra mundo. Para encontrarla, ir´a directamente a la secci´on de palabras que comienzan con m. Luego buscar´a tomando la siguiente letra de la palabra (u), luego la n y as´ı sucesivamente. Esto lo puede hacer porque el diccionario se encuentra ordenado (b´usqueda binaria) 4 / 53
  • 5. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Utilidad II Si el diccionario no estuviera ordenado se podr´ıa tambi´en buscar la palabra recorriendo cada una de las hojas y revisando cada una de las palabras que se encuentren en esa hoja. Esto tardar´ıa mucho m´as (menos eficiencia)(b´usqueda secuencial) Los tipos de b´usquedas a estudiar tienen semejanza con los ejemplos dados 5 / 53
  • 6. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes B´usqueda secuencial o lineal 1. Consiste en empezar desde el inicio del arreglo e ir a trav´es de cada elemento hasta encontrar el valor buscado o hasta llegar al final 2. El arreglo no requiere estar ordenado B´usqueda secuencial en arreglos 1. V´ıdeo: https://youtu.be/W3ClRnYb0KM 6 / 53
  • 7. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmo 7 / 53
  • 8. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes B´usqueda binaria o dicot´omica I Condiciones 1. La estructura debe estar ordenada (ascendente o descendentemente) 2. Conocer el n´umero de elementos de la estructura 8 / 53
  • 9. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes B´usqueda binaria o dicot´omica II Algoritmo (orden ascendente) 1. Se compara el valor buscado con el valor localizado al centro del arreglo 2. Si el valor buscado es localizado, se termina la b´usqueda 3. Si el valor buscado es menor que el analizado, repetir proceso en la mitad inferior, sino en la mitad superior 4. El proceso de partir por la mitad la estructura se repite hasta encontrar el valor o hasta que el tama˜no de la estructura restante sea cero (i.e., valor no encontrado) 9 / 53
  • 10. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes B´usqueda binaria o dicot´omica III M´etodo de b´usqueda binaria 1. V´ıdeo 1: https://youtu.be/7qv1An90q2Q 2. V´ıdeo 2: https://youtu.be/7oa1qEPLFps 10 / 53
  • 11. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmo 11 / 53
  • 12. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ejercicios Dado el conjunto de n´umeros 23, 12, 44, 9, 3, 8, 1, 7, 0, 2, 4, 55 indique el n´umero de comparaciones que se deben hacer para encontrar el n´umero 1 utilizando b´usqueda secuencial. Tome el conjunto de n´umeros dados y utilize la b´usqueda binaria para encontrar el n´umero 1. Indique el n´umero de comparaciones realizadas. Revise los ejercicios propuestos en el documento de Ejercicios B´asicos de Programaci´on. 12 / 53
  • 13. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Eficiencia ¿En qu´e sentido un algoritmo de b´usqueda es m´as eficiente que otro? 13 / 53
  • 14. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Eficiencia ¿En qu´e sentido un algoritmo de b´usqueda es m´as eficiente que otro? ¡Comparaciones! 14 / 53
  • 15. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Eficiencia: b´usqueda secuencial En el mejor caso se encontrar´a el valor en el primer elemento. En el peor caso se har´an n comparaciones. El orden de complejidad en el peor caso ser´ıa O(n). 15 / 53
  • 16. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Eficiencia: b´usqueda binaria I En el mejor caso se encontrar´a el valor en el elemento del medio (una comparaci´on). Se har´a el an´alisis para el peor caso. Inicialmente el n´umero de elementos a analizar es n. Tras la primera divisi´on, el n´umero de elementos que queda por analizar es, como mucho, n/2 (pues nos hemos quedado con la mitad de elementos); tras la segunda divisi´on, el n´umero de elementos que queda ser´a, como mucho, n/4; y as´ı sucesivamente. Por lo general, tras la divisi´on n´umero i, el n´umero de elementos por analizar ser´a, como mucho, n 2i 16 / 53
  • 17. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Eficiencia: b´usqueda binaria II El peor caso se da cuando el elemento a buscar no se encuentra en el vector (es decir, cuando tras dividir los elementos por analizar nos quedemos con un n´umero menor a 1). Por lo tanto, el n´umero m´aximo de divisiones a realizar es el menor n´umero m tal que n 2m < 1 Transformando esta f´ormula a un logaritmo en base 2: n < 2m log2 n < m es decir, que el n´umero m depende, no del tama˜no n del arreglo, sino del logaritmo de dicho n. 17 / 53
  • 18. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Eficiencia: b´usqueda binaria III Es por esto que el algoritmo de b´usqueda binaria tiene una complejidad de orden logar´ıtmico O(log2n). 18 / 53
  • 19. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Eficiencia: b´usqueda secuencial vs binaria 19 / 53
  • 20. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmos de ordenamiento Definition (Ordenamiento) Reorganizar elementos de tal manera que cumplan con un criterio establecido. e1 < e2 < e3 . . . < en → Ascendente e1 > e2 > e3 . . . > en → Descendente 20 / 53
  • 21. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Utilidad Los datos ordenados son f´aciles de encontrar, esto implica menos operaciones y menos tiempo (eficiencia). Existen varios algoritmos de ordenamiento que, dependiendo de la estrategia, servir´an en mayor o menor grado para ordenar elementos. Que un algoritmo sea ingenioso, en este contexto, significa que ordena el conjunto desordenado con el menor n´umero posible de comparaciones e intercambios. 21 / 53
  • 22. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Clasificaci´on de los algoritmos de ordenamiento De acuerdo a la memoria utilizada Internos: cuando la memoria RAM es suficiente para el procesamiento Externos: cuando hace falta enviar cantidades de informaci´on desde la memoria RAM a disco duro. Esto puede repetirse varias veces De acuerdo a la estrategia utilizada B´asicos: burbuja, selecci´on e inserci´on Eficientes: shell sort, quick sort, radix sort, merge sort, heap sort, etc. 22 / 53
  • 23. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ordenamiento de burbuja I Idea Tomar el elemento de mayor valor de un arreglo y llevarlo al final (ordenamiento ascendente); y esto repetirlo a todos los elementos Porqu´e del nombre Alguien se imagin´o que el elemento que se va desplazando es como si una burbuja subiera desde el fondo del agua 23 / 53
  • 24. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ordenamiento de burbuja II Estrategia 1. Recorrer el arreglo desde el elemento 0 con un iterador i. 2. En cada paso preguntar si el elemento i+1 es menor al elemento i (ordenamiento ascendente). Si es as´ı, se intercambian los elementos. 3. As´ı, el elemento mayor quedar´a en el ´ındice mayor 4. Una vez que se llegue al ´ultimo elemento del arreglo, se comienza de nuevo con el paso 1. 5. Se repite hasta que no haya ning´un intercambio de elementos. Algoritmo de burbuja 24 / 53
  • 25. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ordenamiento de burbuja III 1. V´ıdeo: https://youtu.be/L3d48etbseY Pseudoc´odigo 1: for i = 1 hasta n do 2: for j = 0 hasta n-i do 3: if arreglo[j] > arreglo[j+1] then 4: intercambiar(arreglo[j], arreglo[j+1]); 5: end if 6: end for 7: end for 25 / 53
  • 26. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ejemplo, ordenamiento de burbuja Orden ascendente 26 / 53
  • 27. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ejercicios Usando el m´etodo de la burbuja, ordene descendentemente el siguiente conjunto de n´umeros: 9, 3, 8, 1, 7, 0, 2, 4. Indique el n´umero de pasadas realizadas. Usando el m´etodo de la burbuja, ordene ascendentemente el siguiente conjunto de n´umeros: 8, 2, 99, 21, 45, 9, 23. Indique el n´umero de pasadas realizadas. Revise los ejercicios propuestos en el documento de Ejercicios B´asicos de Programaci´on. 27 / 53
  • 28. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmo de selecci´on I Estrategia 1. Se busca el menor de todos los elementos y se le ubica en la primera posici´on del arreglo. 2. Se busca el menor de entre los elementos que quedan y se lo intercambia con el primer elemento del arreglo que queda. 3. Se repite el proceso para todos los elementos del arreglo. Algoritmo de selecci´on 1. V´ıdeo 1: https://youtu.be/l0YwcUJB3vo 2. V´ıdeo 2: https://youtu.be/KCvr7eHXEHE 28 / 53
  • 29. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmo de selecci´on II Pseudoc´odigo 1: for i = 0 hasta n-2 do 2: m´ınimo = i; 3: for j = i+1 hasta n-1 do 4: if arreglo[j] < arreglo[m´ınimo] then 5: m´ınimo = j; 6: end if 7: end for 8: intercambiar(arreglo[i], arreglo[m´ınimo]); 9: end for 29 / 53
  • 30. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ejemplo, algoritmo de selecci´on Orden ascendente 30 / 53
  • 31. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ejercicios 1. Ordene, ascendentemente y descendentemente, usando el algoritmo de selecci´on, el siguiente conjunto de n´umeros: 6, 2, 11, 23, 1, 5, 4. Indique el n´umero de pasadas realizadas. 2. Ordene, ascendentemente y descendentemente, usando el algoritmo de selecci´on, el siguiente conjunto de letras: K, M, S, C, E, W, P, Q . Indique el n´umero de pasadas realizadas. 3. Revise los ejercicios propuestos en el documento de Ejercicios B´asicos de Programaci´on. 31 / 53
  • 32. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmo de inserci´on I Estrategia 1. Se toma el primer elemento del arreglo como el primer elemento de lo que llamaremos el arreglo ordenado. 2. Se toma el pr´oximo n´umero del arreglo y se compara con los elementos del arreglo ordenado, hasta encontrar su posici´on. 3. Se repite el proceso para todos los elementos del arreglo. Algoritmo de inserci´on 32 / 53
  • 33. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmo de inserci´on II 1. V´ıdeo 1: https://youtu.be/5kVQ8kf52K4 2. V´ıdeo 2: https://youtu.be/a7g7Z5dMdgQ Pseudoc´odigo 1: for i = 1 hasta n-1 do 2: j = i; 3: while j > 0 and arreglo[j-1] > arreglo[j] do 4: intercambiar(arreglo[j], arreglo[j-1]); 5: j = j-1; 6: end while 7: end for 33 / 53
  • 34. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ejemplo, algoritmo de inserci´on Orden ascendente 34 / 53
  • 35. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ejercicios 1. Ordene, ascendentemente y descendentemente, usando inserci´on, el siguiente conjunto de n´umeros: 8, 3, 2, 9, 10, 7, 1, 4, 5. Indique las pasadas realizadas. 2. Ordene, ascendentemente y descendentemente, usando inserci´on, el siguiente conjunto de letras: J, M, A, E, W, Q, P, R, M, B,X. Indique el n´umero de pasadas realizadas. 3. Revise los ejercicios propuestos en el documento de Ejercicios B´asicos de Programaci´on. 35 / 53
  • 36. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Eficiencia ¿En qu´e sentido un algoritmo de ordenamiento es m´as eficiente que otro? 36 / 53
  • 37. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Eficiencia ¿En qu´e sentido un algoritmo de ordenamiento es m´as eficiente que otro? ¡Comparaciones e intercambios! 37 / 53
  • 38. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ordenamiento de burbuja I Comparaciones Para ordenar un arreglo de n elementos, el n´umero de comparaciones siempre es: c(n) = (n −1)+(n −2)+· · ·+2+1 = n × (n − 1) 2 c(n) no depende del orden de los t´erminos, sino del n´umero de t´erminos: O(c(n)) = n2 Por lo tanto la cota ajustada asint´otica del n´umero de comparaciones pertenece al orden de n cuadrado. 38 / 53
  • 39. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ordenamiento de burbuja II Intercambios 39 / 53
  • 40. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ordenamiento de burbuja III El n´umero de intercambios i(n), que hay que realizar depende del orden de los t´erminos y podemos diferenciar el mejor y peor caso. Definition (mejor caso) Si el arreglo est´a previamente ordenado. Definition (peor caso) Si el arreglo est´a previamente ordenado en orden inverso. Se puede determinar una cota ajustada asint´otica del n´umero de intercambios, dado que ´este depender´a del orden del vector en cuesti´on. O(i(n)) =? 40 / 53
  • 41. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ordenamiento de burbuja: peor caso I Si se pasa al algoritmo un arreglo ordenado en orden inverso realizar´a un n´umero de comparaciones c(n) = n2 − n 2 y tendr´a que realizar un n´umero igual de intercambios entre los t´erminos del arreglo, dado que en cada comparaci´on los t´erminos estar´an desordenados, y se realizar´a el intercambio. i(n) = n2 − n 2 Por lo tanto en el caso m´as desfavorable tanto el n´umero de comparaciones como el de intercambios coinciden: 41 / 53
  • 42. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ordenamiento de burbuja: peor caso II O(c(n)) = O(i(n)) = n2 El n´umero de comparaciones y de intercambios, en el peor caso, pertenece al orden de n cuadrado. 42 / 53
  • 43. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ordenamiento de burbuja: mejor caso I En el mejor caso el n´umero de comparaciones ser´a el mismo que en cualquier otro caso: Ω(c(n)) = n2 La cota inferior asint´otica del n´umero de comparaciones pertenece al orden de n cuadrado, como en los dem´as casos, pero en todas las comparaciones el orden es el correcto y por tanto no se realiza ning´un intercambio: i(n) = 0 Por lo tanto el coste de intercambios no depende de n, y es constante: Ω(i(n)) = 1 43 / 53
  • 44. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Ordenamiento de burbuja: mejor caso II A tener en cuenta El ordenamiento de burbuja tiene una complejidad Ω(n2 ) igual que el algoritmo de selecci´on. Cuando un arreglo ya est´a ordenado, a diferencia del algoritmo de inserci´on, que pasar´a por el arreglo una vez y encontrar´a que no hay necesidad de intercambiar las posiciones de los elementos, el ordenamiento de burbuja est´a forzado a pasar por dichas comparaciones, esto hace que su complejidad sea cuadr´atica, incluso en el mejor de los casos. El ordenamiento de burbuja se cataloga como el algoritmo m´as ineficiente que existe. 44 / 53
  • 45. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmo de selecci´on I Comparaciones Para ordenar un arreglo de n elementos, el n´umero de comparaciones siempre es: c(n) = (n −1)+(n −2)+· · ·+2+1 = n × (n − 1) 2 c(n) no depende del orden de los t´erminos, sino del n´umero de t´erminos. O(c(n)) = n2 Por lo tanto la cota ajustada asint´otica del n´umero de comparaciones pertenece al orden de n cuadrado. 45 / 53
  • 46. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmo de selecci´on II Intercambios El n´umero de intercambios i(n) tambi´en es fijo. T´engase en cuenta que la instrucci´on de intercambio siempre se ejecuta. i(n) = n Definition (mejor caso) Si el arreglo est´a previamente ordenado. Definition (peor caso) Si el arreglo est´a previamente ordenado en orden inverso. 46 / 53
  • 47. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmo de selecci´on III sea cual sea el arreglo, y el orden de sus elementos, lo que implica en todos los casos un coste lineal: O(i(n)) = n la cota ajustada asint´otica del n´umero de intercambios es lineal, del orden de n. La f´ormula que representa el rendimiento del algoritmo, viene dada por c(n) = n2 + n 2 47 / 53
  • 48. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmo de inserci´on I Eficiencia Depende del n´umero de comparaciones y del n´umero de copias que el algoritmo requiere. Comparaciones En la primera pasada, se compara un m´aximo de un ´ıtem. En la segunda pasada, se compara un m´aximo de dos ´ıtems, y as´ı hasta un m´aximo de n − 1 comparaciones en la ´ultima pasada. Esto es 1 + 2 + 3 + . . . + (n − 1) = n × (n − 1) 2 48 / 53
  • 49. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmo de inserci´on II Sin embargo, ya que en cada pasada un promedio de solamente la mitad del n´umero m´aximo de ´ıtems son realmente comparados antes de que se encuentre el punto de inserci´on, se puede dividir este n´umero entre dos, lo que da n × (n − 1) 4 N´umero de copias 49 / 53
  • 50. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmo de inserci´on III El n´umero de copias es aproximadamente el mismo que el n´umero de comparaciones. Sin embargo, una copia no consume tanto tiempo como un intercambio, as´ı que para datos aleatorios este algoritmo corre dos veces m´as r´apido que el algoritmo de burbuja y m´as r´apido que el algoritmo de selecci´on. En cualquier caso, el algoritmo de inserci´on corre en O(n2 ) en tiempo para datos aleatorios. 50 / 53
  • 51. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmo de inserci´on IV Para datos que est´an ya ordenados o casi ordenados, el algoritmo de inserci´on es mejor. Cuando los datos est´an en orden, la condici´on en el while nunca es verdadera, lo que ejecuta n-1 veces. En este caso el algoritmo corre en O(n) en tiempo. Si los datos est´an casi ordenados, el algoritmo corre casi en O(n) en tiempo, lo que lo hace una manera simple y eficiente para ordenar un archivo que est´a s´olo un poco fuera de orden. Sin embargo, para datos que est´an en orden inverso, toda posible comparaci´on y desplazamiento se lleva a cabo, as´ı que el algoritmo no corre m´as r´apido que el algoritmo de burbuja. 51 / 53
  • 52. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Algoritmo de inserci´on V Revise eso utilizando la opci´on reverse-sorted en el applet InsertSort Workshop (http://cs.brynmawr.edu/Courses/cs206/ spring2004/lafore.html). 52 / 53
  • 53. B´usquedas y Ordenamientos Angel V´azquez-Pati˜no B´usqueda Utilidad B´usqueda secuencial B´usqueda binaria Eficiencia Ordenamiento Utilidad Clasificaci´on Algoritmo de burbuja Algoritmo de selecci´on Algoritmo de inserci´on Eficiencia Burbuja Selecci´on Inserci´on Fuentes Fuentes Libros • Lafore, R., 2003. Data structures & algorithms in Java, 2nd ed. Sams, Indianapolis, USA. Cap´ıtulos 2 y 3. (Disponible en la biblioteca) • Deitel, P.J., Deitel, H.M., 2012. Java: How to Program, 9th ed. Prentice Hall, Upper Saddle River, N.J. Cap´ıtulo 19. (Disponible en la biblioteca) 53 / 53