Unidad 6 ordenacion_interna

4

Click here to load reader

Transcript of Unidad 6 ordenacion_interna

Page 1: Unidad 6 ordenacion_interna

ESTRUCTURAS DE DATOS

UNIDAD 6 METODOS DE ORDENACION INTERNA

Los métodos de ordenación se dividen en 2 categorías:

Ordenación Interna. Es aquella que se realiza totalmente en memoria principal, con gran velocidad y acceso aleatorio.

Ordenación Externa. Es aquella cuyos datos están soportados por el almacenamiento o memoria secundaria, esto hace que las operaciones de entrada y salida sean más lentas pero en cambio se pueden manipular grandes volúmenes de información.

La ordenación interna considera diversos métodos entre los cuales se encuentran los métodos de intercambio y los métodos de distribución.

Métodos de Intercambio

Entre los principales métodos de intercambio se encuentran los de Burbuja, QuickSort y Shell Sort.

Método de Burbuja

Este método se basa en el principio de comparar pares de elementos adyacentes e intercambiarlos entre si hasta que se encuentren todos ordenados. El método básicamente consisten en:

o Comparar los elementos de las posiciones 1 y 2 del arreglo y si no están en el orden requerido se intercambian sus valores.

o Se comparan elementos de la posición 2 y 3 intercambiando si es necesario. o El proceso continúa hasta que el último elemento ha sido comparado.

Al terminar este proceso el último elemento ya ha sido ordenado por lo que se repita la etapa anterior hasta el elemento n-1 y así sucesivamente.

Método QuickSort

Este método se basa en el hecho de que es más rápido y fácil de ordenar dos listas pequeñas que una lista grande. Se usa la típica estrategia “Divide y vencerás”. La lista a clasificar se divide en dos sablistas , una con todos los valores menores a un cierto valor específico y la otra con todos los valores mayores a ese valor.

El primer paso es elegir dentro de la lista original un valor específico llamado pivote, y después de un procedimiento que separe las listas se obtendrá:

Una sublista con los valores menores o iguales al pivote. El elemento de separación que es el pivote. Una sublista con los valores mayores al pivote.

Este proceso se debe repetir hasta que ya no sea posible dividir una sublista en dos partes.

En general, el método es recomendable para las listas con un gran volumen de datos.

1

Page 2: Unidad 6 ordenacion_interna

ESTRUCTURAS DE DATOS

Método ShellSort

El primer algoritmo que mejoró de forma sustancial la ordenación por inserción fue ShellSort. El algoritmo de ordenación ShellSort, fue desarrollado en 1959 por Donald Shell.

La idea de Shell fue evitar gran cantidad de movimientos de datos, sin embargo no ordena elementos adyacentes sino que utiliza una segmentación entre los datos. Esta segmentación puede ser de cualquier tamaño de acuerdo a una secuencia de valores que empiezan con un valor grande (pero menor al tamaño total de la estructura) y van disminuyendo hasta llegar al '1', es decir compara primero elementos que están muy separados , para después comparar elementos más cercanos, y así sucesivamente reduciendo gradualmente al método de inserción.

Métodos de Distribución

Método Radix

Cualquier tipo de ordenación está basado en algún valor concreto denominado clave de ordenación. Por ejemplo, un conjunto de nombres puede ordenarse de acuerdo al apellido. El método Radix también conocido como “Ordenación Raíz”, en lugar de comparar los elementos según la clave de ordenación se basa en la estructura de esa clave de ordenación. Una forma de implementar el método es mediante la creación de colas separadas para cada valor posible de cada digito o caracter de la clave de ordenación. El número de colas o el número de posibles valores se denomina raíz o base.

Por ejemplo, si se ordenaran cadenas de caracteres formados por caracteres alfabéticos en minúsculas, la raíz seria 27 es decir el número de letras del alfabeto y en ese caso se tendría que utilizar 27 colas, una para cada posible caracter.

Si se ordenan números decimales, de tres dígitos, entonces la raíz seria de 10 utilizando una cola para cada uno de los dígitos del cero al nueve (0-9). La ordenación del método Radix hará 3 pasadas a través del conjunto de valores, una para cada posición del dígito. En la primera pasada se considera el número menos significativo, es decir las unidades, y se distribuyen en cada cola de acuerdo al dígito correspondiente.

En la segunda pasada se considera el dígito de las decenas distribuyendo nuevamente en las colas correspondientes, y en la tercera pasada se considera el dígito de las centenas. Cuando los números se extraen por última vez de las colas estarán completamente ordenados.

2

Page 3: Unidad 6 ordenacion_interna

ESTRUCTURAS DE DATOS

Ejemplo

Lista original: 442,503, 312, 145,250, 341, 325, 102,420 143.

1ra. Vuelta 250. 420, 341, 442,312, 102, 503, 143, 145,325

2da. Vuelta 102. 503,312, 420,325 341 , 442, 143, 145, 250

3ra. Vuelta 102, 143,145, 250,312, 325,341 420, 442, 503

Cola del digito Unidades Decenas Centenas

0     420 250     503 102        

1       341       312   145 143 102

2   102 312 442     325 420     143 102

3     143 503           341 325 312

4         145 143 442 341     442 420

5     325 145       250       503

3