Story Transcript
1
Corina Flores Villarroel
Corina Flores, Centro MEMI
ORDENAMIENTO Y BÚSQUEDA EN ARREGLOS
ORDENAMIENTO EN ARREGLOS Y COLECCIONES
Corina Flores, Centro MEMI
Una de las tareas más comunes a la hora de procesar datos es la clasificación u ordenación de los datos. Para lograr ordenarlos es necesario encontrar un método de ordenación que se adecúe a nuestras necesidades, y analizar el número de comparaciones que realizarían en los diferentes casos que encuentren.
En este análisis deberíamos estudiar si necesitamos orden ascendente o descendente o si los datos a ordenar van a ser numéricos o alfanuméricos.
2
ORDENAMIENTO EN ARREGLOS Y COLECCIONES Los métodos de ordenamiento pueden ser aplicados tanto a arreglos estáticos(Array) como a a colecciones (ArrayList). El ordenamiento en arreglos estáticos es mucho más simple que en arreglos dinámicos. Para ordenar una colección de objetos en base a alguna de sus propiedades tenemos que crear nuestro propio método. Al ordenar una colección, se puede seleccionar si se desea ordenar por un solo campo de la colección, por dos o más.
Corina Flores, Centro MEMI
3
ORDENAMIENTO EN ARREGLOS Y COLECCIONES
Se puede ordenar en arreglos y colecciones … texto, números o datos: Corina Flores, Centro MEMI
En orden ascendente (de A a Z, de cero a 9 o desde la primera fecha a la más reciente) En orden descendente (de Z a A, de 9 a cero o desde la fecha más reciente a la primera).
4
MÉTODOS DE ORDENAMIENTO
Se puede ordenar en arreglos y colecciones … texto, números o datos: Corina Flores, Centro MEMI
En orden ascendente (de A a Z, de cero a 9 o desde la primera fecha a la más reciente) En orden descendente (de Z a A, de 9 a cero o desde la fecha más reciente a la primera).
5
MÉTODOS DE ORDENAMIENTO
Métodos simples Ordenación por Intercambio (Burbuja )
2.
Ordenación por Selección
3.
Ordenación por Inserción
4.
Ordenación por fusión o mezcla (Merge sort)
Corina Flores, Centro MEMI
1.
6
MÉTODO POR INTERCAMBIO (BURBUJA) Compara
Corina Flores, Centro MEMI
pares de elementos adyacentes e intercambia entre sí hasta que esten todos ordenados. 1. Compara los dos primeros elementos. Si estan en orden se mantiene como están, en caso contrario, se intercambian entre sí. 2. El proceso continúa hasta que cada elemento de la lista ha sido comparado con sus elementos adyacentyes y se han realizado los intercambios necesario. Al acabar esta operación sobre la serie tendríamos un valor colocado en su posición final. 3. Ahora se repetiría el proceso sobre la lista pero sin incluir el último elemento, pues ya está ordenado.
7
MÉTODO DE BURBUJA
Corina Flores, Centro MEMI
void burbuja( int [] lista) { int aux, longitud; longitud = lista.length; for( int i=0; i < longitud; i++ ){ for( int j=0; j < (longitud-1-i); j++){ if( lista[j] > lista[j+1] ){ aux = lista[j]; lista[j] = lista[j+1] ); lista[j+1] = aux; } } } } Ordena en orden Ascenden 8
MÉTODO POR SELECCION Selecciona
Corina Flores, Centro MEMI
elementos uno a uno de la lista y los coloca en su posicion definitiva. 1. Seleccionamos el elemento menor de la lista y colocamos en su posicion, intercambiando con el valor existente alli. Entonces, el primer elemento ya esta ordenado y ocupando su posicion respectiva. 2. Seleccionamos como nueva lista la sublista obtenida eliminando el primer elemento. 3. Volvemos al paso 1 para ordenar la sublista. 9
MÉTODO DE SELECCION
Corina Flores, Centro MEMI
void seleccion( int [] lista) { int aux, indice_min, n; n = lista.length; for( int j=0; j < n; j++ ){ indice_min=j; for ( int i=j+1; i