Métodos
de Ordenamientos
Método de burbuja
En este método el elemento cuyo valor es mayor va posición a
posición hacia el final de la lista, se
basa en el principio de comparar pares
de elementos adyacentes e intercambiarlos entre si hasta que estén todos en
orden, El algoritmo de este método es el siguiente:
En la
preparación para la exposición aprendí que el método de ordenamiento directo (burbuja)
está constituido por dos estructuras repetitivas for y una condición la cual se encarga de
preguntar si un valor que se encuentra
en el arreglo en la posición actual es mayor que el de la siguiente posición.
Método de Burbuja con señal
Mediante una bandera/indicador o bien un variable lógica, se puede detectar
la presencia o ausencia de una condición.
Así, mediante la variable BANDERA se representa clasificación terminada con un valor verdadero, y clasificación no
terminada con un valor falso. El
algoritmo para el método es el siguiente:
Método
de Ordenamiento por Inserción directa.
Consiste en hacer varias pasadas por el array, analizando en
cada una de estas un elemento y se intenta encontrar su orden relativo entre
los analizados en pasadas anteriores. Cada elemento se desplaza por esa lista
para encontrar su lugar, cuando todos los elementos del array han sido
analizados, la lista está completamente ordenada.
El algoritmo del método es el siguiente:
|
|
Mergesort
(Ordenamiento por mezcla)
Se basa en la técnica de divide y vencerás, primordial mente
se divide la lista en dos listas más pequeñas de aproximadamente el mismo
tamaño, y luego utilizar mergesort
recursivamente en los problemas hasta
que no se pueda subdividir más, luego se mezclan ambas mitades ordenando los
datos a medida que se combinan. El algoritmo para este método es el siguiente:
Consta de dos partes primero se divide la lista.
Ordenamiento
con el método de shell
Es el método de clasificación por inserción, cada elemento
se compara con los elementos contiguos de su izquierda, uno tras otro. Si el
elemento a insertar es más pequeño hay que ejecutar muchas comparaciones antes
de colocarlo en su lugar definitivo. Shell modifico los saltos contiguos
resultantes de las comparaciones por saltos de mayor tamaño y con eso se
consigue la clasificación más rápida. El método se basa en fijar el tamaño de
los saltos constantes, pero de más de una posición.
Ordenación
por el método de la sacudida (Shaker Sort)
Este método de
sacudida es una optimización del método de intercambio directo o burbuja. En este algoritmo cada pasada tiene dos
etapas.
Primera Pasada
Primera etapa, de derecha a izquierda: se trasladan los
elementos más pequeños hacia la parte izquierda del arreglo, almacenando en una
variable la posición del último elemento intercambiado.
Segunda Pasada
De izquierda a derecha: se trasladan los elementos más
grandes hacia la parte derecha del arreglo, almacenando en otra variable la
posición del último elemento intercambiado.
Ordenamiento
por selección directa.
Este algoritmo se basa en hacer comparaciones, así que para
que realice su trabajo de ordenación son imprescindibles dos cosas: un array o
estructura similar de elementos comparables y un criterio claro de comparación,
tal que dados dos elementos nos diga si están en orden o no.
Las funcionalidades del método de ordenamiento por selección
son las siguientes:
Buscar el mínimo elemento de la lista, intercambiarlo
con el primero, buscar el mínimo en el resto de la lista, intercambiarlo con el
segundo, y en general buscar el mínimo elemento entre una posición i y el final
de la lista, intercambiar el mínimo con el elemento de la posición i.
Método
de transformación de claves.
Este método es una técnica que permite que un registro se
recupere directamente con un mínimo de comparaciones o sin ellas. Esto se lleva
a cabo reservando una posición en la tabla para cada posible valor de clave, de
tal manera que todas las posiciones queden incluidas de acuerdo al valor de la
clave. Un registro se recupera simplemente usando la clave, o una función de la
clave.
Método
HeapSort
Es un algoritmo de ordenación no recursivo, no estable, con
complejidad computacional. Este algoritmo consiste en almacenar todos los
elementos del vector a ordenar en un árbol (heap), y luego extraer el nodo que
queda como nodo raíz del árbol (cima) en sucesivas iteraciones obtenido el
conjunto ordenado. Basa su funcionamiento en una propiedad de los árboles, por
la cual, la cima contiene siempre el menor elemento (o el mayor. Según se haya
definido el árbol de todos los almacenados en el).
El método heap sort consiste esencialmente en:
Convierte el arreglo en un heap, construir un arreglo
ordenado de atrás hacia adelante (mayor a menor) , sacar el valor máximo en el
heap, poner el valor en el arreglo ordenado, reconstruir el heap con un
elemento menos, utilizar el mismo arreglo para el heap y el arreglo ordenado.