0% encontró este documento útil (0 votos)
205 vistas2 páginas

Algoritmo de Ordenamiento Shell

El documento describe el algoritmo de ordenamiento Shell. Shell sort es una generalización del ordenamiento por inserción que mejora la eficiencia al comparar elementos separados por distancias variables. El algoritmo ordena los datos en pasos, reduciendo progresivamente la distancia entre elementos comparados hasta llegar a una simple inserción. Tiene un rendimiento mejor que O(n2) pero peor que el óptimo O(n log n).

Cargado por

jheison
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
205 vistas2 páginas

Algoritmo de Ordenamiento Shell

El documento describe el algoritmo de ordenamiento Shell. Shell sort es una generalización del ordenamiento por inserción que mejora la eficiencia al comparar elementos separados por distancias variables. El algoritmo ordena los datos en pasos, reduciendo progresivamente la distancia entre elementos comparados hasta llegar a una simple inserción. Tiene un rendimiento mejor que O(n2) pero peor que el óptimo O(n log n).

Cargado por

jheison
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 2

El presente trabajo tiene como objetivo

conocer el concepto bsico del algoritmo de


ordenamiento bajo el mtodo de SHELL.
En esta presentacin veremos cuando se
aplica este mtodo, como es su
funcionamiento.

los valores slo una posicin cada


vez.
El algoritmo Shell sort mejora el ordenamiento
por insercin comparando elementos
separados por un espacio de varias
posiciones. Esto permite que un elemento

El ordenamiento Shell (Shell sort en ingls) es

haga "pasos ms grandes" hacia su posicin

un algoritmo de ordenamiento. El mtodo se

esperada. Los pasos mltiples sobre los datos

denomina Shell en honor de su

se hacen con tamaos de espacio cada vez

inventor Donald Shell. Su implementacin

ms pequeos. El ltimo paso del Shell sort

original, requiere O(n2) comparaciones e

es un simple ordenamiento por insercin, pero

intercambios en el peor caso. Un cambio

para entonces, ya est garantizado que los

menor presentado en el libro de V. Pratt

datos del vector estn casi ordenados.

produce una implementacin con un

Escuela Tecnolgica Instituto


Tcnico Central La Salle

rendimiento de O(n log2 n) en el peor caso.


Esto es mejor que las O(n2) comparaciones
requeridas por algoritmos simples pero peor
que el ptimo O(n log n). Aunque es fcil

Lgica de Programacin
Presentado por:
German Gmez Rocha
Jheison Stick Bejarano Palacios
Mircoles 11 de noviembre del 2015

desarrollar un sentido intuitivo de cmo


funciona este algoritmo, es muy difcil analizar
su tiempo de ejecucin.

Considere un valor pequeo que est


inicialmente almacenado en el final
del vector que se quiere ordenar de forma
ascendente. Usando un ordenamiento O(n2)
como el ordenamiento de burbuja o

El Shell sort es una generalizacin

el ordenamiento por insercin, tomar

del ordenamiento por insercin, teniendo en

aproximadamente n comparaciones e

cuenta dos observaciones:

intercambios para mover este valor hacia el

1. El ordenamiento por insercin es


eficiente si la entrada est "casi
ordenada".

Algoritmo de
Ordenamiento Shell

Ejemplo

2. El ordenamiento por insercin es


ineficiente, en general, porque mueve

otro extremo del vector. El Shell sort primero


mueve los valores usando tamaos de
espacio gigantes, de manera que un valor
pequeo se mover bastantes posiciones
hacia su posicin final, con slo unas pocas
comparaciones e intercambios.

Uno puede visualizar el algoritmo Shell sort


de la siguiente manera: coloque la lista en
una tabla y ordene las columnas (usando
un ordenamiento por insercin). Repita este
proceso, cada vez con un nmero menor de
columnas ms largas. Al final, la tabla tiene
slo una columna. Mientras que transformar
la lista en una tabla hace ms fcil
visualizarlo, el algoritmo propiamente hace su

Cuando lo leemos de nuevo como una nica


lista de nmeros, obtenemos
[ 10 14 73 25 23 13 27 94 33 39
25 59 94 65 82 45 ] . Aqu, el 10 que
estaba en el extremo final, se ha movido
hasta el extremo inicial. Esta lista es entonces
de nuevo ordenada usando un ordenamiento
con un espacio de 3 posiciones, y despus un
ordenamiento con un espacio de 1 posicin
(ordenamiento por insercin simple).

ordenamiento en contexto (incrementando el

Este tipo de ordenamiento no requiere de


memoria adicional para su ejecucin.
DESVENTAJAS:

Su complejidad es difcil de calcular y


depende mucho de la secuencia de
incrementos que utilice.
Es un algoritmo algo inestable, porque
se puede perder el orden relativo
inicial con facilidad.

CONCLUSIONES:

ndice por el tamao de paso, esto es


usando i += tamao_de_paso en vez

de i++ ).

Por ejemplo, considere una lista de nmeros


como [ 13 14 94 33 82 25 59 94 65
23 45 27 73 25 39 10 ] . Si
comenzamos con un tamao de paso de 5,
podramos visualizar esto dividiendo la lista
de nmeros en una tabla con 5 columnas.
Esto quedara as:

El tiempo que requiere este algoritmo,


depende de qu sucesin de
incrementos se use.
Es importante recordar que es uno de
los algoritmos mas rpidos, pero poco
confiables por su facilidad de perdida
en su orden de bsqueda, sera
importante
realizar
pruebas
experimentales y de esta forma
determinar su fiabilidad.

13 14 94 33 82
25 59 94 65 23
45 27 73 25 39
10
Entonces ordenamos cada columna, lo que
nos da
10 14 73 25 23

VENTAJAS:

13 27 94 33 39
25 59 94 65 82
45

Es un mtodo de ordenamiento
relativamente simple y tiene un
mtodo de ejecucin aceptable.
Es uno de los algoritmos ms rpidos
que se pueden encontrar.

El Shell sort lleva este nombre en honor a su


inventor, Donald Shell, que lo public en
1959. Algunos libros de texto y referencias
antiguas le llaman ordenacin "

También podría gustarte