Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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á:
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
1ra. Vuelta 250. 420, 341, 442,312, 102, 503, 143, 145,325
2da. Vuelta 102. 503,312, 420,325 341 , 442, 143, 145, 250
Cola
del
digito Unidades Decenas Centenas
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.
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
A1: [ 7 ], [ 4 ], [ 1 ], [ 3], [ 5]
A2: [ 6 ], [ 2 ], [ 9 ], [ 2]
A2: [1, 2, 3, 9]
F:[1, 2, 2, 3, 4, 6, 7, 9], [ 5]
4
ESTRUCTURAS DE DATOS
A1: [1, 2, 2, 3, 4, 6, 7, 9]
A2:[ 5 ]
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.
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.
Partición:
A2 : [2, 8, 36],[15]
Fusión:
Partición:
Fusión:
Partición:
A2: [6]
Fusión: