cocktail sort

Download Cocktail Sort

If you can't read please download the document

Upload: yelitza-campos-de-march

Post on 24-Jul-2015

127 views

Category:

Documents


3 download

DESCRIPTION

metodo de ordenamiento

TRANSCRIPT

El Algoritmo Consta de 3 Ciclos, Uno se encarga de buscar el Mayor Elemento y ubicarlo hacia la derecha y el otro de encontrar el menor valor ordenndolo hacia la izquierda, esto se repite hasta que la posicin mayor del menor valor sea igual a la posicin menor del valor mayor, es decir este algoritmo va ordenando al mismo tiempo por los dos extremos del vector logrando que tras la primera iteracin, tanto el menor como el mayor elemento estarn en sus posiciones finales.

El Algoritmo es considerado principalmente estable debido a que mantiene el orden relativo de los elementos, es decir, no ordena aquellos elementos que sean iguales.

En el peor caso y en el caso promedio la complejidad del algoritmo es de O(n*n) y en el mejor de los casos donde los valores estn semi ordenados, donde los elementos estn en posiciones que difieren como mucho k (k 1) entonces la complejidad seria O(k*n).

Este algoritmo es dos veces mas rpido que el mtodo de burbuja tradicional. Resuelve el problema de las tortugas, logrando un menor costo de tiempo debido a que es ms rpido en comparacin del mtodo de burbuja. Este algoritmo guarda las posiciones donde se genero el ultimo intercambio logrando que hayan menos comparaciones, es decir un rango menor de intercambios posibles, logrando reducir el costo del tiempo.

Sigue siendo un algoritmo de complejidad O(n*n) en el peor de los casos. Sigue teniendo un mayor tiempo de ejecucin que otros algoritmos, por ejemplo el QuickSort.

def sacudida(lista): """Ordena la lista por el metodo de sacudida. O burbuja bidireccional.""" izq = 1 der = len(lista)-1 j = len(lista)-1 while izq lista[i]: lista[i],lista[i-1] = lista[i-1],lista[i] j=i izq = j+1 for i in range(izq,der+1): if lista[i-1] > lista[i]: lista[i],lista[i-1] = lista[i-1],lista[i] j=i der = j-1 return lista

Fin! Gracias por su atencin!!