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

Parciales y Semestral Profesor David cedeño
Parciales y Semestral Profesor David cedeñoParciales y Semestral Profesor David cedeño
Parciales y Semestral Profesor David cedeñomonicabetancur29
 
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdfS02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdfGERSONYT1
 
182305655-Manual-Torno-Cnc-Muy-Completo.pdf
182305655-Manual-Torno-Cnc-Muy-Completo.pdf182305655-Manual-Torno-Cnc-Muy-Completo.pdf
182305655-Manual-Torno-Cnc-Muy-Completo.pdfmanualvaca7
 
ESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdf
ESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdfESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdf
ESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdffredyflores58
 
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...JeisonArango3
 
Ejercicio 1 - Edificio en Galerías - Pro.
Ejercicio 1 - Edificio en Galerías - Pro.Ejercicio 1 - Edificio en Galerías - Pro.
Ejercicio 1 - Edificio en Galerías - Pro.MariaJoseLopez914893
 
IPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADO
IPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADOIPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADO
IPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADOEdisonRebattaRojas1
 
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdfS03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdfroycordovabocanegra7
 
Trabajos en Altura - USO DEL ARNES .ppt
Trabajos en Altura  - USO DEL ARNES .pptTrabajos en Altura  - USO DEL ARNES .ppt
Trabajos en Altura - USO DEL ARNES .pptdantechaveztarazona
 
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALFUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALPamelaGranda5
 
JC Etapas del desarrollo de la industria minera.pptx
JC Etapas del desarrollo de la industria minera.pptxJC Etapas del desarrollo de la industria minera.pptx
JC Etapas del desarrollo de la industria minera.pptxJuanCorcuera3
 
thinner-acrilico-ac-205- ficha tecnica msds
thinner-acrilico-ac-205- ficha tecnica msdsthinner-acrilico-ac-205- ficha tecnica msds
thinner-acrilico-ac-205- ficha tecnica msdsfioticona20395
 
Ecuacion Diferencial de Clairaut, Ejercicios Resueltos
Ecuacion Diferencial de Clairaut, Ejercicios ResueltosEcuacion Diferencial de Clairaut, Ejercicios Resueltos
Ecuacion Diferencial de Clairaut, Ejercicios ResueltosManuel Alejandro Vivas Riverol
 
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdfNOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdflinderlauradelacruz
 
Teoría de la contingencia en las organizaciones
Teoría de la contingencia en las organizacionesTeoría de la contingencia en las organizaciones
Teoría de la contingencia en las organizacionesCarlosRozo19
 
gestion y optimizacion de procesos proyecto
gestion y optimizacion de procesos proyectogestion y optimizacion de procesos proyecto
gestion y optimizacion de procesos proyectoclopez37
 
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdfTR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdfFRANCISCOJUSTOSIERRA
 
Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............osoriosantiago887
 
DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2
DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2
DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2ErnestoContreras39
 

Último (19)

Parciales y Semestral Profesor David cedeño
Parciales y Semestral Profesor David cedeñoParciales y Semestral Profesor David cedeño
Parciales y Semestral Profesor David cedeño
 
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdfS02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
S02_s2 ECUACIONES DIFERENCIALES EXACTAS.pdf
 
182305655-Manual-Torno-Cnc-Muy-Completo.pdf
182305655-Manual-Torno-Cnc-Muy-Completo.pdf182305655-Manual-Torno-Cnc-Muy-Completo.pdf
182305655-Manual-Torno-Cnc-Muy-Completo.pdf
 
ESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdf
ESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdfESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdf
ESTADISTICA RESUELTO SAN JUAN SOLUCIONARIO CORRECTO.pdf
 
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
Marcas de Fuego debido a la combustión de materiales afectados por un incendi...
 
Ejercicio 1 - Edificio en Galerías - Pro.
Ejercicio 1 - Edificio en Galerías - Pro.Ejercicio 1 - Edificio en Galerías - Pro.
Ejercicio 1 - Edificio en Galerías - Pro.
 
IPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADO
IPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADOIPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADO
IPERC INSTALACION DE EQUIPOS DE AIRE ACONDICIONADO
 
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdfS03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
S03 - Perfil del ingeniero industrial UTP - DIAPOS.pdf
 
Trabajos en Altura - USO DEL ARNES .ppt
Trabajos en Altura  - USO DEL ARNES .pptTrabajos en Altura  - USO DEL ARNES .ppt
Trabajos en Altura - USO DEL ARNES .ppt
 
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIALFUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
FUNDAMENTOS DE LA INTELIGENCIA ARTIFICIAL
 
JC Etapas del desarrollo de la industria minera.pptx
JC Etapas del desarrollo de la industria minera.pptxJC Etapas del desarrollo de la industria minera.pptx
JC Etapas del desarrollo de la industria minera.pptx
 
thinner-acrilico-ac-205- ficha tecnica msds
thinner-acrilico-ac-205- ficha tecnica msdsthinner-acrilico-ac-205- ficha tecnica msds
thinner-acrilico-ac-205- ficha tecnica msds
 
Ecuacion Diferencial de Clairaut, Ejercicios Resueltos
Ecuacion Diferencial de Clairaut, Ejercicios ResueltosEcuacion Diferencial de Clairaut, Ejercicios Resueltos
Ecuacion Diferencial de Clairaut, Ejercicios Resueltos
 
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdfNOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
NOJA-581-08 NOJA Power OSM15-27-38 Guia de Producto - es.pdf
 
Teoría de la contingencia en las organizaciones
Teoría de la contingencia en las organizacionesTeoría de la contingencia en las organizaciones
Teoría de la contingencia en las organizaciones
 
gestion y optimizacion de procesos proyecto
gestion y optimizacion de procesos proyectogestion y optimizacion de procesos proyecto
gestion y optimizacion de procesos proyecto
 
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdfTR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
TR-514 (3) - DOS COLUMNAS PASCUA 2024 3.4 8.4.24.pdf
 
Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............Wal-Mart batalla con RFID...............
Wal-Mart batalla con RFID...............
 
DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2
DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2
DOCUMENTO DE MODELO DISEÑO DE MEZCLA 210 KG CM2
 

Busquedas 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