Está en la página 1de 5

ESTRUCTURAS DE DATOS

TEMA 5 MÉTODOS DE ORDENACIÓN

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.

ALGORITMOS DE ORDENACIÓN INTERNA

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
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
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

ALGORITMOS DE ORDENACIÓN EXTERNA

Los sistemas de procesamiento manipulan normalmente una gran cantidad de información. En estos
casos los datos se almacenan sobre soportes de almacenamiento masivo (discos magnéticos y medios
ópticos).

Los métodos más comunes para ordenar datos en dispositivos de memoria secundaria son el método
de Mezcla Directa y el de Mezcla Natural.

Los métodos de ordenación externa se realizan mediante dos operaciones básicas: La Partición y la
Fusión.

3
ESTRUCTURAS DE DATOS

La Partición de un archivo consiste en repartir los registros del archivo en dos o más archivos en
función de una determinada condición. Existen diversos métodos para producir particiones a partir de
un archivo no ordenado como la Clasificación Interna, por Contenido, Selección por Sustitución y por
Secuencias.

La Fusión o mezcla de archivos consisten en reunir en un archivo, los registros de dos o más archivos
ordenados por un campo clave. El archivo resultante será un archivo ordenado por el campo antes
mencionado.

MÉTODO DE INTERCALACIÓN O MEZCLA DIRECTA

Este método consiste en una partición sucesiva del archivo y una fusión que produce secuencias
ordenadas. La primera partición se hace para secuencias de longitud 1 y la fusión producirá
secuencias ordenadas de longitud 2. A cada nueva partición se duplicará la longitud de las secuencia
ordenadas y de igual manera sucederá en cada fusión. El método termina cuando la longitud de la
secuencia ordenada excede la longitud del archivo a ordenar.

Ejemplo:

Archivo origen

F: 7, 6, 4, 2, 1, 9, 3, 2, 5

Partición: Con secuencia de longitud 1:

A1: [ 7 ], [ 4 ], [ 1 ], [ 3], [ 5]

A2: [ 6 ], [ 2 ], [ 9 ], [ 2]

Fusión: Produce secuencia ordenada de long. 2:

F: [6, 7], [2, 4], [1, 9],[ 2, 3], [ 5 ]

Partición: Con secuencia de long. 2:

A1: [6, 7], [1, 9], [ 5 ]

A2: [2, 4], [2, 3]

Fusión: Produce secuencia ordenada de long. 4:

F: [2, 4, 6, 7] , [1, 2, 3, 9], [ 5 ]

Partición: Con secuencia de long. 4:

A1: [2, 4, 6, 7], [ 5]

A2: [1, 2, 3, 9]

Fusión: Produce secuencia ordenada de long. 8:

F:[1, 2, 2, 3, 4, 6, 7, 9], [ 5]

Partición: Con secuencia de long. 4:

4
ESTRUCTURAS DE DATOS

A1: [1, 2, 2, 3, 4, 6, 7, 9]

A2:[ 5 ]

Fusión: Produce secuencia ordenada de long. 16:

F: [1, 2, 2, 3, 4, 5, 6, 7, 9]

La longitud de la secuencia ordenada excede al total de elementos del archivo y el proceso termina.

MÉTODO DE MEZCLA NATURAL

Este método es de los más recomendables para la ordenación de archivos secuenciales, consiste en
aprovechar la posible ordenación interna de las secuencia de un archivo obteniendo con ellas
particiones ordenadas de longitud variable sobre 2 ficheros o archivos auxiliares. A partir de estos 2
archivos auxiliares se escribe un nuevo archivo mezclando los segmentos crecientes de cada uno de
ellos.

Ejemplo:

Archivo origen.

F: 19, 27, 2 ,8, 36, 5 , 20, 15, 6

Partición:

A1: [19, 27], [5, 20], [6]

A2 : [2, 8, 36],[15]

Fusión:

F: 2 , 8, 19, 27, 36, 5, 15, 20, 6

Partición:

A1: [ 2, 8, 19, 27, 36], [6]

A2: [5, 15, 20]

Fusión:

F: 2, 5, 8, 15, 19, 20, 27, 36, 6

Partición:

A1: [2, 5, 8, 15, 19, 20, 27, 36]

A2: [6]

Fusión:

F: 2, 5, 6, 8, 15, 19, 20, 27, 36, 6

También podría gustarte