SlideShare una empresa de Scribd logo
4
Lo más leído
5
Lo más leído
6
Lo más leído
Shell Sort
Pedirle a un ordenador que haga algo intuitivamente es, de momento, bastante complicado, así que sustituiremos la intuición por un procedimiento mecánico más o menos ingenioso. Veamos el siguiente arreglo:
74, 14, 21, 44, 38, 97, 11, 78, 65, 88, 30
Shell nos propone que hagamos sobre el arreglo una serie de ordenaciones basadas en la inserción directa, pero dividiendo el arreglo original en varios sub-arreglo tales que cada elemento esté separado  k  elementos del anterior (a esta separación a menudo se le llama  salto  o  gap )... Se debe empezar con  k=n/2 , siendo n el número de elementos de arreglo, y utilizando siempre la división entera.... después iremos variando k haciéndolo más pequeño mediante sucesivas divisiones por 2, hasta llegar a k=1. Pero vamos a ello... En nuestro ejemplo, n=11 (porque hay 11 elementos). Así que k=n/2=11/2=5
Empezamos con k=5. Así pues, vamos a dividir nuestro arreglo original en 5 sub-arreglo, en los cuales, sus elementos estarán separados por 5 lugares del arreglo original (el  salto  o  gap  es 5). Vamos a hacerlo con colores. Tomamos el primer elemento (el 74) contamos 5 lugares y tomamos también otro elemento (el 97) volvemos a contar 5 y tomamos otro (el 30) y acabamos porque se nos acaba el arreglo. El primer sub-arreglo con k=5 es el formado por 74, 97 y 30. Vamos a pintarlos en rojo
74 , 14, 21, 44, 38,  97 , 11, 78, 65, 88,  30
Ahora, ordenaremos los elementos del sub-arreglo rojo pero sólo entre ellos, utilizando el algoritmo de Inserción directa.   30 , 14, 21, 44, 38,  74 , 11, 78, 65, 88,  97   Fíjate qué curioso. El 30, un elemento relativamente pequeño se ha ido hacia el principio y el 97 hacia el final... ¡pero dando  saltos  ( gap )   de 5 en 5 lugares! Cada uno ha avanzado en  saltos  de 5 hacia una posición cercana a su ubicación definitiva.
Fíjate qué curioso. El 30, un elemento relativamente pequeño se ha ido hacia el principio y el 97 hacia el final... ¡pero dando  saltos  ( gap )   de 5 en 5 lugares! Cada uno ha avanzado en  saltos  de 5 hacia una posición cercana a su ubicación definitiva. Formemos ahora otro sub-arreglo con salto k=5... partiendo del segundo elemento (el 14) y contando 5 (tomamos también el 11) y ya está, porque se acaba el arreglo.   30 ,  14 , 21, 44, 38,  74 ,  11 , 78, 65, 88,  97
Vamos a ordenarlos entre ellos con Inserción directa... el 11 primero y el 14 después.    30 ,  11 , 21, 44, 38,  74 ,  14 , 78, 65, 88,  97
Ahora a por otro... el 21 y el 78     30 ,  11 ,  21 , 44, 38,  74 ,  14 ,  78 , 65, 88,  97   Están en orden entre ellos, así que se quedan como están.
Ahora le toca al sub-arreglo formado por el 44 y el 65    30 ,  11 ,  21 ,  44 , 38,  74 ,  14 ,  78 ,  65 , 88,  97   Que también están en orden entre ellos... y finalmente el 38 y el 88, que también están en orden. 30 ,  11 ,  21 ,  44 ,  38 ,  74 ,  14 ,  78 ,  65 ,  88 ,  97
Hemos formado 5 sub-arreglos en los cuales los elementos están separados por 5 lugares (porque k=5). Hemos ordenado cada sub-arreglo por separado utilizando inserción directa, y hemos logrado que cada elemento se dirija hacia su ubicación definitiva en pasos de 5 lugares. Por supuesto, no hemos terminado todavía, pero resulta evidente que algunos elementos, como el 30, el 97 o el 11 han dado un gran  salto  y que no deben andar muy lejos de su sitio final.
Decimos ahora que el arreglo está 5-ordenado.   Para continuar con el algoritmo, debemos ir reduciendo progresivamente k dividiéndolo sucesivamente por 2 y k-ordenando los sub-arreglos que nos salgan (recuerda que nos salen k sub-arreglo). Cuando lleguemos a k=1 habremos terminado.   Pero de momento, nuestra k valía 5, así que ahora k←k/2=5/2=2   Nuestra nueva k vale 2. Repetimos todo el tinglado, pero ahora nos saldrán 2 sub-arreglo cuyos elementos están separados por 2 lugares.
El primero (en marrón) y el segundo (en verde): 30 ,  11 ,  21 ,  44 ,  38 ,  74 ,  14 ,  78 ,  65 ,  88 ,  97
Ordenamos por un lado los marrones entre ellos y los verdes entre ellos... es decir, 2-ordenamos el arreglo (curiosamente, los verdes ya están ordenados.... probablemente ha contribuido a ello la 5-ordenación que ya hemos hecho. En ese caso, la ordenación ha requerido muy poco esfuerzo)   14 ,  11 ,  21 ,  44 ,  30 ,  74 ,  38 ,  78 ,  65 ,  88,   97
Ahora, cada número está mucho más cerca de su posición definitiva... El arreglo está 2-ordenado... pero sigue también 5-ordenado. No hemos perdido el trabajo que hicimos cuando k era 5.   Finalmente, calculamos un nuevo k dividiendo el que tenemos entre 2. k←k/2=2/2=1 Hemos llegado a k=1. Cuando k es 1 sólo podemos obtener 1 sub-arreglo cuyos elementos están separados 1 posición: el propio arreglo original. Dicho de otra manera... cuando k es 1, el algoritmo de Shell se comporta exactamente igual que el de inserción directa sobre todo el arreglo .
Sin embargo, las k-ordenaciones que hemos hecho (con k=5 y k=2) han hecho que cada elemento se aproximase con saltos de 5 y luego de 2 posiciones hacia su ubicación definitiva. Ahora que k=1 y que vamos a aplicar el algoritmo de inserción directa tal cual, haremos muchas menos comparaciones e intercambios que si lo hubiéramos aplicado con en arreglo tal como lo teníamos al empezar. El algoritmo de inserción directa se comporta tanto mejor cuanto más cerca está cada elemento de su sitio definitivo.   Finalmente, el arreglo queda de ésta manera:   11, 14, 21, 30, 38, 44, 65, 74, 78, 88, 97   Cada elemento descolocado ha tenido que moverse pocos lugares. Muchos de ellos ni siquiera se han movido.

Más contenido relacionado

PPTX
Metodos de ordenamiento 2
PPTX
Programación 3: listas enlazadas
PPTX
Tipos de listas en estructura de datos
PPT
Arboles Binarios
PPTX
Listas,pilas y colas Estructura de Datos
PPTX
Listas doblemente enlazadas
PPS
Pilas y colas
PPTX
Algoritmo dijkstra
Metodos de ordenamiento 2
Programación 3: listas enlazadas
Tipos de listas en estructura de datos
Arboles Binarios
Listas,pilas y colas Estructura de Datos
Listas doblemente enlazadas
Pilas y colas
Algoritmo dijkstra

La actualidad más candente (20)

PDF
Algoritmo de kruskal
PPTX
3. algoritmos de ordenamiento interno
DOCX
Pilas como estructura de datos..
DOCX
Metodos de-ordenamiento
PPTX
Busqueda Binaria
PPTX
Estructura de Datos - Unidad 6 Metodos de busqueda
PPTX
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.
PPTX
Estructura de Datos - Unidad 5 metodos de ordenamiento
PPTX
Estructura de datos: lista, pilas y colas
PPTX
Exposicion Busqueda
PPTX
Ordenamiento parte 2
PPT
PPTX
Búsqueda secuencial y binaria
PPTX
Metodos de ordenamiento
PDF
Funciones recursivas en C++
PPTX
Ejercicios de búsqueda a Ciegas y Búsqueda informada
PPTX
Unidad 5
PPTX
Busqueda Binaria
PDF
Algoritmos de Ordenamiento externo
PPTX
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Algoritmo de kruskal
3. algoritmos de ordenamiento interno
Pilas como estructura de datos..
Metodos de-ordenamiento
Busqueda Binaria
Estructura de Datos - Unidad 6 Metodos de busqueda
Algoritmos de Dijkstra, Warshall, Ordenación Topológica.
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de datos: lista, pilas y colas
Exposicion Busqueda
Ordenamiento parte 2
Búsqueda secuencial y binaria
Metodos de ordenamiento
Funciones recursivas en C++
Ejercicios de búsqueda a Ciegas y Búsqueda informada
Unidad 5
Busqueda Binaria
Algoritmos de Ordenamiento externo
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Publicidad

Similar a Método de Ordenamiento Sort Shell (20)

PPTX
Programacion dinamicaaaa
PPTX
metodosdeordenamiento.pptx
PPTX
Metodos de ordenamiento
PPTX
Metodos de ordenamiento
PPTX
Ordenamiento
PPTX
Arrays metodos deordenamiento01
PDF
Reporte metodos de busqueda y ordenamiento
PPT
Jflambert lyada - ayudantia matematicas discretas
PPT
Jflambert lyada - ayudantia ordenamiento y teo maestro
PPTX
Presentacion de programacion 2
PDF
Ordenamiento
PDF
Calculo mental
PPTX
Programación dinámica presentación
PPTX
Ordenamiento shell & heapsort
PPTX
Presentación Unidad 3_Apuntes Nº4 (Algoritmos de Ordenamiento).pptx
PPTX
Axiomas De Peano
PPTX
Axiomas De Peano
PDF
Solucion taller 1 de control 2
PDF
Matematica nivel 1 cursada universidad de la matanza
PDF
Guia Matriz Escalonada Reducina
Programacion dinamicaaaa
metodosdeordenamiento.pptx
Metodos de ordenamiento
Metodos de ordenamiento
Ordenamiento
Arrays metodos deordenamiento01
Reporte metodos de busqueda y ordenamiento
Jflambert lyada - ayudantia matematicas discretas
Jflambert lyada - ayudantia ordenamiento y teo maestro
Presentacion de programacion 2
Ordenamiento
Calculo mental
Programación dinámica presentación
Ordenamiento shell & heapsort
Presentación Unidad 3_Apuntes Nº4 (Algoritmos de Ordenamiento).pptx
Axiomas De Peano
Axiomas De Peano
Solucion taller 1 de control 2
Matematica nivel 1 cursada universidad de la matanza
Guia Matriz Escalonada Reducina
Publicidad

Último (20)

PPTX
Presentación de la Cetoacidosis diabetica.pptx
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
PDF
biología es un libro sobre casi todo el tema de biología
PDF
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
PDF
Híper Mega Repaso Histológico Bloque 3.pdf
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
PPTX
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
PPTX
caso clínico iam clinica y semiología l3.pptx
DOCX
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
PPTX
Doctrina 1 Soteriologuia y sus diferente
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PDF
Metodologías Activas con herramientas IAG
PDF
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
PDF
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
DOCX
V UNIDAD - SEGUNDO GRADO. del mes de agosto
Presentación de la Cetoacidosis diabetica.pptx
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
biología es un libro sobre casi todo el tema de biología
Conecta con la Motivacion - Brian Tracy Ccesa007.pdf
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
Híper Mega Repaso Histológico Bloque 3.pdf
V UNIDAD - PRIMER GRADO. del mes de agosto
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
AGENTES PATÓGENOS Y LAS PRINCIPAL ENFERMEAD.pptx
caso clínico iam clinica y semiología l3.pptx
Informe_practica pre Final.docxddadssasdddddddddddddddddddddddddddddddddddddddd
Doctrina 1 Soteriologuia y sus diferente
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
Metodologías Activas con herramientas IAG
Educación Artística y Desarrollo Humano - Howard Gardner Ccesa007.pdf
Integrando la Inteligencia Artificial Generativa (IAG) en el Aula
Fundamentos_Educacion_a_Distancia_ABC.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
V UNIDAD - SEGUNDO GRADO. del mes de agosto

Método de Ordenamiento Sort Shell

  • 2. Pedirle a un ordenador que haga algo intuitivamente es, de momento, bastante complicado, así que sustituiremos la intuición por un procedimiento mecánico más o menos ingenioso. Veamos el siguiente arreglo:
  • 3. 74, 14, 21, 44, 38, 97, 11, 78, 65, 88, 30
  • 4. Shell nos propone que hagamos sobre el arreglo una serie de ordenaciones basadas en la inserción directa, pero dividiendo el arreglo original en varios sub-arreglo tales que cada elemento esté separado k elementos del anterior (a esta separación a menudo se le llama salto o gap )... Se debe empezar con k=n/2 , siendo n el número de elementos de arreglo, y utilizando siempre la división entera.... después iremos variando k haciéndolo más pequeño mediante sucesivas divisiones por 2, hasta llegar a k=1. Pero vamos a ello... En nuestro ejemplo, n=11 (porque hay 11 elementos). Así que k=n/2=11/2=5
  • 5. Empezamos con k=5. Así pues, vamos a dividir nuestro arreglo original en 5 sub-arreglo, en los cuales, sus elementos estarán separados por 5 lugares del arreglo original (el salto o gap es 5). Vamos a hacerlo con colores. Tomamos el primer elemento (el 74) contamos 5 lugares y tomamos también otro elemento (el 97) volvemos a contar 5 y tomamos otro (el 30) y acabamos porque se nos acaba el arreglo. El primer sub-arreglo con k=5 es el formado por 74, 97 y 30. Vamos a pintarlos en rojo
  • 6. 74 , 14, 21, 44, 38, 97 , 11, 78, 65, 88, 30
  • 7. Ahora, ordenaremos los elementos del sub-arreglo rojo pero sólo entre ellos, utilizando el algoritmo de Inserción directa.   30 , 14, 21, 44, 38, 74 , 11, 78, 65, 88, 97   Fíjate qué curioso. El 30, un elemento relativamente pequeño se ha ido hacia el principio y el 97 hacia el final... ¡pero dando saltos ( gap ) de 5 en 5 lugares! Cada uno ha avanzado en saltos de 5 hacia una posición cercana a su ubicación definitiva.
  • 8. Fíjate qué curioso. El 30, un elemento relativamente pequeño se ha ido hacia el principio y el 97 hacia el final... ¡pero dando saltos ( gap ) de 5 en 5 lugares! Cada uno ha avanzado en saltos de 5 hacia una posición cercana a su ubicación definitiva. Formemos ahora otro sub-arreglo con salto k=5... partiendo del segundo elemento (el 14) y contando 5 (tomamos también el 11) y ya está, porque se acaba el arreglo.   30 , 14 , 21, 44, 38, 74 , 11 , 78, 65, 88, 97
  • 9. Vamos a ordenarlos entre ellos con Inserción directa... el 11 primero y el 14 después.   30 , 11 , 21, 44, 38, 74 , 14 , 78, 65, 88, 97
  • 10. Ahora a por otro... el 21 y el 78     30 , 11 , 21 , 44, 38, 74 , 14 , 78 , 65, 88, 97   Están en orden entre ellos, así que se quedan como están.
  • 11. Ahora le toca al sub-arreglo formado por el 44 y el 65    30 , 11 , 21 , 44 , 38, 74 , 14 , 78 , 65 , 88, 97   Que también están en orden entre ellos... y finalmente el 38 y el 88, que también están en orden. 30 , 11 , 21 , 44 , 38 , 74 , 14 , 78 , 65 , 88 , 97
  • 12. Hemos formado 5 sub-arreglos en los cuales los elementos están separados por 5 lugares (porque k=5). Hemos ordenado cada sub-arreglo por separado utilizando inserción directa, y hemos logrado que cada elemento se dirija hacia su ubicación definitiva en pasos de 5 lugares. Por supuesto, no hemos terminado todavía, pero resulta evidente que algunos elementos, como el 30, el 97 o el 11 han dado un gran salto y que no deben andar muy lejos de su sitio final.
  • 13. Decimos ahora que el arreglo está 5-ordenado.   Para continuar con el algoritmo, debemos ir reduciendo progresivamente k dividiéndolo sucesivamente por 2 y k-ordenando los sub-arreglos que nos salgan (recuerda que nos salen k sub-arreglo). Cuando lleguemos a k=1 habremos terminado.   Pero de momento, nuestra k valía 5, así que ahora k←k/2=5/2=2   Nuestra nueva k vale 2. Repetimos todo el tinglado, pero ahora nos saldrán 2 sub-arreglo cuyos elementos están separados por 2 lugares.
  • 14. El primero (en marrón) y el segundo (en verde): 30 , 11 , 21 , 44 , 38 , 74 , 14 , 78 , 65 , 88 , 97
  • 15. Ordenamos por un lado los marrones entre ellos y los verdes entre ellos... es decir, 2-ordenamos el arreglo (curiosamente, los verdes ya están ordenados.... probablemente ha contribuido a ello la 5-ordenación que ya hemos hecho. En ese caso, la ordenación ha requerido muy poco esfuerzo)   14 , 11 , 21 , 44 , 30 , 74 , 38 , 78 , 65 , 88, 97
  • 16. Ahora, cada número está mucho más cerca de su posición definitiva... El arreglo está 2-ordenado... pero sigue también 5-ordenado. No hemos perdido el trabajo que hicimos cuando k era 5.   Finalmente, calculamos un nuevo k dividiendo el que tenemos entre 2. k←k/2=2/2=1 Hemos llegado a k=1. Cuando k es 1 sólo podemos obtener 1 sub-arreglo cuyos elementos están separados 1 posición: el propio arreglo original. Dicho de otra manera... cuando k es 1, el algoritmo de Shell se comporta exactamente igual que el de inserción directa sobre todo el arreglo .
  • 17. Sin embargo, las k-ordenaciones que hemos hecho (con k=5 y k=2) han hecho que cada elemento se aproximase con saltos de 5 y luego de 2 posiciones hacia su ubicación definitiva. Ahora que k=1 y que vamos a aplicar el algoritmo de inserción directa tal cual, haremos muchas menos comparaciones e intercambios que si lo hubiéramos aplicado con en arreglo tal como lo teníamos al empezar. El algoritmo de inserción directa se comporta tanto mejor cuanto más cerca está cada elemento de su sitio definitivo.   Finalmente, el arreglo queda de ésta manera:   11, 14, 21, 30, 38, 44, 65, 74, 78, 88, 97   Cada elemento descolocado ha tenido que moverse pocos lugares. Muchos de ellos ni siquiera se han movido.