domingo, 1 de diciembre de 2013

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.





No hay comentarios:

Publicar un comentario