Está en la página 1de 23

ESTRUCTURA DE DATOS

UNIDAD 1
Tema: Ordenamiento y
búsqueda
Ing. Mónica Gómez Rios. MsC.
Unidad 1. Contenido

• 1.1 Métodos de ordenamiento


• 1.1.1 Método de la burbuja
• 1.1.2 Selección
• 1.1.3 Inserción
• 1.1.4 Shell
• 1.1.5 MergeSort
• 1.1.6 Quick Sort

• 1.2 Métodos de búsqueda


• 1.2.1 Búsqueda secuencial
• 1.2.2 Búsqueda binaria
Métodos de ordenamiento - Conceptos

• Ordenación o clasificación es el proceso de reordenar un conjunto de


objetos en un orden específico. El propósito de la ordenación es
facilitar la búsqueda de elementos en el conjunto ordenado.
• Existen muchos algoritmos de ordenación, siendo la diferencia entre
ellos las ventajas de unos sobre otros en la eficiencia en tiempo de
ejecución.
Métodos de ordenamiento
• El problema del ordenamiento puede establecerse mediante la
siguiente ación:
Dados los elementos: a1 ,a2 ,, an
Ordenar consiste en permutar esos elementos en un orden:
ak1 ,ak 2 , , ak n

tal que dada una función de ordenamiento f:

f (ak1 )  f (ak2 )   f (akn )


4
Métodos de ordenamiento
• En lo que sigue se considera que la estructura lineal (array, lista,
vector o secuencia) a ordenar se representa por un array de objetos
(números enteros):
int a[ ] = new int[MAX];
• siendo MAX el número máximo de elementos del array. El orden de
los elementos después de la ordenación se considera ascendente.

5
ALGORITMO DE EJEMPLO DE UN ORDENAMIENTO

PROBLEMA:
En una Empresa el área de Recursos
Humanos requiere ordenar 3
números de empleados obteniendo la
siguiente salida.
Ordenamiento – Burbuja o bubble sort
• El método ordenación burbuja (Bubble sort) es uno de los más simples de entender.

• Idea básica:

• Repetir: Comparar elementos adyacentes de dos en dos. Si un elemento es mayor que el


que está en la siguiente posición se intercambian.

• Es un método caracterizado por la comparación e intercambio de pares de elementos


hasta que todos los elementos estén ordenados.

• En cada iteración se coloca el elemento más pequeño (orden ascendente) en su lugar


correcto, cambiándose además la posición de los demás elementos del array. 7
Algoritmo - Burbuja
a={5,9,13,2,4,1};
int i,j;
for(i=0;i<a.length-1;i++){
for(j=i+1;j<a.length;j++){
if(a[i]>a[j])
{
int aux=a[i];
a[i]=a[j];
a[j]=aux;
}
}
}
Prueba de escritorio
i j a[i] a[j] a[i]>a[j] aux
0 1 a[0]=5 a[1]=9 F --

Algoritmo burbuja 2
3
a[0]=5
a[0]=5
2
a[2]=13
a[3]=2
5
F
V
--
5

4 a[0]=5 a[1]=9 F --
5 a[0]=5 a[1]=9 V 2
1 2

1 2 a[1]=9 a[2]=13 F --
3 a[1]=9 a[3]=5 V 9
5 9
4 a[1]=5 a[4]=4 V 5
4 5
5 a[1]=4 a[5]=2 V 4
2 4

2 3 a[2]=13 a[3]=9 V 13
9 13
4 a[2]=9 a[4]=5 V 9
5 9
5 a[2]=5 a[5]=4 V 5
4 5

3 4 a[3]=13 a[4]=9 V 13
9 13
5 a[3]=9 a[5]=5 V 9
5 9

4 5 a[4]=13 a[5]=9 V 13
9 13
9
Algoritmo burbuja
Datos PASADA
Indice
Originales 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 11ª
0 5 2 1 1 1 1 1 1 1 1 1 1
1 9 9 9 5 4 2 2 2 2 2 2 2
2 13 13 13 13 13 13 9 5 4 4 4 4
3 2 5 5 9 9 9 13 13 13 9 5 5
4 4 4 4 4 5 5 5 9 9 13 13 9
5 1 1 2 2 2 4 4 4 5 5 9 13

10
Algoritmo burbuja
i=0; j=i+1 Si(a[0]=0>a[1..n])
Si cumple, realiza el intercambio de a[0] con a[n]
Datos PASADA
Indice
Originales 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 11ª
0 5 2 1 1 1 1 1 1 1 1 1 1
1 9 9 9 5 4 2 2 2 2 2 2 2
2 13 13 13 13 13 13 9 5 4 4 4 4
3 2 5 5 9 9 9 13 13 13 9 5 5
4 4 4 4 4 5 5 5 9 9 13 13 9
5 1 1 2 2 2 4 4 4 5 5 9 13

11
Algoritmo burbuja
Datos PASADA
Indice
Originales 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 11ª
0 5 2 1 1 1 1 1 1 1 1 1 1
1 9 9 9 5 4 2 2 2 2 2 2 2
2 13 13 13 13 13 13 9 5 4 4 4 4
3 2 5 5 9 9 9 13 13 13 9 5 5
4 4 4 4 4 5 5 5 9 9 13 13 9
5 1 1 2 2 2 4 4 4 5 5 9 13

12
Algoritmo burbuja
Datos PASADA
Indice
Originales 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 11ª
0 5 2 1 1 1 1 1 1 1 1 1 1
1 9 9 9 5 4 2 2 2 2 2 2 2
2 13 13 13 13 13 13 9 5 4 4 4 4
3 2 5 5 9 9 9 13 13 13 9 5 5
4 4 4 4 4 5 5 5 9 9 13 13 9
5 1 1 2 2 2 4 4 4 5 5 9 13

13
Algoritmo burbuja
Datos PASADA
Indice
Originales 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 11ª
0 5 2 1 1 1 1 1 1 1 1 1 1
1 9 9 9 5 4 2 2 2 2 2 2 2
2 13 13 13 13 13 13 9 5 4 4 4 4
3 2 5 5 9 9 9 13 13 13 9 5 5
4 4 4 4 4 5 5 5 9 9 13 13 9
5 1 1 2 2 2 4 4 4 5 5 9 13

14
Algoritmo burbuja
Datos PASADA
Indice
Originales 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 11ª
0 5 2 1 1 1 1 1 1 1 1 1 1
1 9 9 9 5 4 2 2 2 2 2 2 2
2 13 13 13 13 13 13 9 5 4 4 4 4
3 2 5 5 9 9 9 13 13 13 9 5 5
4 4 4 4 4 5 5 5 9 9 13 13 9
5 1 1 2 2 2 4 4 4 5 5 9 13

15
Algoritmo burbuja
Datos PASADA
Indice
Originales 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 11ª
0 5 2 1 1 1 1 1 1 1 1 1 1
1 9 9 9 5 4 2 2 2 2 2 2 2
2 13 13 13 13 13 13 9 5 4 4 4 4
3 2 5 5 9 9 9 13 13 13 9 5 5
4 4 4 4 4 5 5 5 9 9 13 13 9
5 1 1 2 2 2 4 4 4 5 5 9 13

16
Algoritmo burbuja
Datos PASADA
Indice
Originales 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 11ª
0 5 2 1 1 1 1 1 1 1 1 1 1
1 9 9 9 5 4 2 2 2 2 2 2 2
2 13 13 13 13 13 13 9 5 4 4 4 4
3 2 5 5 9 9 9 13 13 13 9 5 5
4 4 4 4 4 5 5 5 9 9 13 13 9
5 1 1 2 2 2 4 4 4 5 5 9 13

17
Algoritmo burbuja
Datos PASADA
Indice
Originales 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 11ª
0 5 2 1 1 1 1 1 1 1 1 1 1
1 9 9 9 5 4 2 2 2 2 2 2 2
2 13 13 13 13 13 13 9 5 4 4 4 4
3 2 5 5 9 9 9 13 13 13 9 5 5
4 4 4 4 4 5 5 5 9 9 13 13 9
5 1 1 2 2 2 4 4 4 5 5 9 13

18
Algoritmo burbuja
Datos PASADA
Indice
Originales 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 11ª
0 5 2 1 1 1 1 1 1 1 1 1 1
1 9 9 9 5 4 2 2 2 2 2 2 2
2 13 13 13 13 13 13 9 5 4 4 4 4
3 2 5 5 9 9 9 13 13 13 9 5 5
4 4 4 4 4 5 5 5 9 9 13 13 9
5 1 1 2 2 2 4 4 4 5 5 9 13

19
Algoritmo burbuja
Datos PASADA
Indice
Originales 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 11ª
0 5 2 1 1 1 1 1 1 1 1 1 1
1 9 9 9 5 4 2 2 2 2 2 2 2
2 13 13 13 13 13 13 9 5 4 4 4 4
3 2 5 5 9 9 9 13 13 13 9 5 5
4 4 4 4 4 5 5 5 9 9 13 13 9
5 1 1 2 2 2 4 4 4 5 5 9 13

20
Algoritmo burbuja
Datos PASADA
Indice
Originales 1ª 2ª 3ª 4ª 5ª 6ª 7ª 8ª 9ª 10ª 11ª
0 5 2 1 1 1 1 1 1 1 1 1 1
1 9 9 9 5 4 2 2 2 2 2 2 2
2 13 13 13 13 13 13 9 5 4 4 4 4
3 2 5 5 9 9 9 13 13 13 9 5 5
4 4 4 4 4 5 5 5 9 9 13 13 9
5 1 1 2 2 2 4 4 4 5 5 9 13

21
Método de ordenación Burbuja

Algunas observaciones importantes son las siguientes:

1. El algoritmo es poco eficiente, no se recomienda su uso en


aplicaciones reales. Se explica con fines didácticos
solamente.
2. Existen versiones mejoradas del pseudocódigo
presentado. Se recomienda a los alumnos buscar dichas
versiones.
Preguntas

También podría gustarte