metodos de ordenamiento

15

Click here to load reader

Upload: christian-arias

Post on 18-Jun-2015

9.987 views

Category:

Travel


0 download

TRANSCRIPT

Page 1: Metodos de ordenamiento

Métodos de ordenación

Diego Armando Gómez Mosquera

[email protected]

Page 2: Metodos de ordenamiento

Métodos de ordenación.

Ordenación por intercambio. Ordenación por selección. Ordenación por inserción. Ordenación por burbuja.

Page 3: Metodos de ordenamiento

Ordenación por intercambio

Algoritmo de ordenación mas sencillo. Ordena los elementos de una lista de forma

ascendente. El algoritmo se basa en la lectura sucesiva de la

lista a ordenar, comparando el elemento inferior de la lista con el resto de elementos.

El algoritmo realiza n-1 pasadas.

Page 4: Metodos de ordenamiento

Algoritmo

public static void ordenacionPorIntercambio(int a[]){for (int i = 0; i <a.length-1; i++) {

for (int j = i+1; j <a.length; j++) {if(a[i]>a[j]){

int aux;aux=a[i];a[i]=a[j];a[j]=aux;

}}

}}

Page 5: Metodos de ordenamiento

Ordenación por selección

El algoritmo se fundamenta en sucesivas pasadas que intercambian el elemento mas pequeño de la lista a la primera posición de la lista y así sucesivamente.

Su implementación es con dos ciclos anidados.

Es uno de los métodos mas eficientes.

Page 6: Metodos de ordenamiento

Ordenación por selección

4 3 2 1

a[0] a[1] a[2] a[3]

1 3 2 4

a[0] a[1] a[2] a[3]

1 2 3 4

a[0] a[1] a[2] a[3]

Page 7: Metodos de ordenamiento

Ordenación por selección

public static void ordenacionPorSeleccion(int a[]){ int i,j,posMenor=0; boolean cambio=false;

for (i = 0; i <a.length-1; i++) {int tmp=a[i];for (j = i+1; j < a.length; j++) {

if(tmp>a[j]){tmp=a[j];posMenor=j;cambio=true;

}}if(cambio==true){

int aux=a[i];a[i]=a[posMenor];a[posMenor]=aux;cambio=false;

}}

}

Page 8: Metodos de ordenamiento

Ordenación por inserción.

El algoritmo se fundamenta en la inserción de números en la posición mas adecuada de la lista hasta que estos quedan ordenados.

Corre los números de izquierda a derecha.

Page 9: Metodos de ordenamiento

Ordenación por inserción.

4 3 2 1

a[0] a[1] a[2] a[3]

3 4 2 1

a[0] a[1] a[2] a[3]

2 3 4 1

a[0] a[1] a[2] a[3]

1 2 3 4

a[0] a[1] a[2] a[3]

Page 10: Metodos de ordenamiento

Ordenación por inserción.

public static void ordenacionPorInsercion(int a[]){int i,j;int aux;for (i = 1; i < a.length; i++) {

j=i;aux=a[i];while(j>0 && aux<a[j-1]){

a[j]=a[j-1];j--;

}a[j]=aux;

}}

Page 11: Metodos de ordenamiento

Búsqueda en listas.

Búsqueda secuencial. Búsqueda binaria.

Page 12: Metodos de ordenamiento

Búsqueda secuencial.

El elemento que se busca en la lista se conoce como clave.

La clave se busca elemento por elemento de la lista hasta su primer ocurrencia.

Si se encuentra la clave se retorna la posición donde se encontró, de lo contrario retorna -1.

Page 13: Metodos de ordenamiento

Búsqueda secuencial.

4 8 3 14 21 90 2 1 65 89 90 2

Page 14: Metodos de ordenamiento

Búsqueda binaria.

La lista debe ser ordenada. Es una búsqueda mucho mas rápida. El algoritmo parte la lista a la mita. Busca hacia la derecha o izquierda según

le convenga y parte la lista de nuevo hasta encontrar el valor de busqueda.

Page 15: Metodos de ordenamiento

Búsqueda binaria.

-8 4 5 9 12 18 25 40

a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7]

60

a[8] Bajo=0

Alto=8

Central = (bajo+alto)/2= (0+8)/2=4

18 25 40

a[5] a[6] a[7]

60

a[8]

Central = (bajo+alto)/2= (5+8)/2=6

40

a[7]

60

a[8]

Central = (bajo+alto)/2= (7+8)/2=7