SlideShare una empresa de Scribd logo
1 de 26
ORDENAMIENTO SHELL
ORDENAMIENTO SHELL


   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-arreglos tales que cada
  elemento esté separado k elementos del anterior
  (salto o gap).
ORDENAMIENTO SHELL


   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.
ORDENAMIENTO SHELL


   Pongamos un ejemplo:

  » Se pide ordenar ascendentemente este arreglo

   74, 14, 21, 44, 38, 97, 11, 78, 65, 88, 30.

                                  n=11
ORDENAMIENTO SHELL

              1. k=n/2 >>> 11/2=5

     74, 14, 21, 44, 38, 97, 11, 78, 65, 88, 30



     30, 14, 21, 44, 38, 74, 11, 78, 65, 88, 97
ORDENAMIENTO SHELL


     30, 14, 21, 44, 38, 74, 11, 78, 65, 88, 97



     30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97
ORDENAMIENTO SHELL


     30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97



     30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97
ORDENAMIENTO SHELL


     30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97



     30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97



                       Arreglo 5-ordenado
ORDENAMIENTO SHELL

               2. k=k/2 >>> 5/2=2

     30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97



     14, 11, 21, 44, 30, 74, 38, 78, 65, 88, 97

                     Arreglo 2-ordenado
ORDENAMIENTO SHELL


              3. k=k/2 >>> 2/2=1

     14, 11, 21, 44, 30, 74, 38, 78, 65, 88, 97



     11, 14, 21, 30, 38, 44, 65, 74, 78, 88, 97
ORDENAMIENTO HEAPSORT
ORDENAMIENTO HEAPSORT


  Según Williams[2001] un montículo o montón
  se define como una secuencia de llaves hi que
  tienen la siguiente relación de orden:

               hi <=h2i y hi<=h2i+1
                  Para i= 1,2,…,N/2.
ORDENAMIENTO HEAPSORT


   Pongamos un ejemplo:

  » Ordenar descendente este arreglo:

            9, 15, 6, 10, 4, 24, 18, 14, 22
ORDENAMIENTO HEAPSORT


  Primero: Hacerlo un montículo.

            9, 15, 6, 10, 4, 24, 18, 14, 22


       Comparamos la posición 4 con la 8 y 9.
           10<14 y 10<22 … (V)
ORDENAMIENTO HEAPSORT



        9, 15, 6, 10, 4, 24, 18, 14, 22


      Comparamos la posición 3 con la 6 y 7.
           6<24 y 6<18 … (V)
ORDENAMIENTO HEAPSORT



         9, 15, 6, 10, 4, 24, 18, 14, 22

    Comparamos la posición 2 con la 4 y 5.
               15<10 y 15<4 … (F)
    Se intercambia de posición quedando.
          9, 4, 6, 10, 15, 24, 18, 14, 22
ORDENAMIENTO HEAPSORT

  Puesto que se han hecho modificaciones se
  comprueba para i>2

            9, 4, 6, 10, 15, 24, 18, 14, 22



            9, 15, 6, 10, 4, 24, 18, 14, 22
ORDENAMIENTO HEAPSORT



         9, 4, 6, 10, 15, 24, 18, 14, 22

    Comparamos la posición 1 con la 2 y 3.
                 9<15 y 9<6 … (F)
    Se intercambia de posición quedando.
          4, 9, 6, 10, 15, 24, 18, 14, 22
ORDENAMIENTO HEAPSORT

  Se comprueba para i>1

            4, 9, 6, 10, 15, 24, 18, 14, 22


            4, 9, 6, 10, 15, 24, 18, 14, 22


            4, 9, 6, 10, 15, 24, 18, 14, 22
ORDENAMIENTO HEAPSORT


         Ahora se repite esta secuencia pero
  intercambiando el primer termino por el ultimo y
     reduciendo en 1 el numero de términos del
    arreglo, y construyendo e montón con los n-1
                  primeros términos.
ORDENAMIENTO HEAPSORT


       4, 9, 6, 10, 15, 24, 18, 14, 22

       22, 9, 6, 10, 15, 24, 18, 14, 4

                  Llama a la función montículo

       6, 9, 18, 10, 15, 24, 22, 14, 4
ORDENAMIENTO HEAPSORT

  Luego se sigue este proceso intercambiando el
  primer termino del nuevo montículo, ya no por el
  ultimo, sino por el penúltimo.

  Luego se procede a formar otro nuevo montículo
  con 1 término menos que el anterior :

                                (n-1)-1 = n-2
ORDENAMIENTO HEAPSORT


       6, 9, 18, 10, 15, 24, 22, 14, 4

       14, 9, 18, 10, 15, 24, 22, 6, 4

                  Llama a la función montículo

       9, 10, 18, 14, 15, 24, 22, 6, 4
ORDENAMIENTO HEAPSORT


  Este proceso se repite sucesivamente hasta llegar
   hasta que nuestro montículo a construir tenga
                   n-n=0 términos:
ORDENAMIENTO HEAPSORT


       18, 22, 24, 15, 14, 10, 9, 6, 4

       24, 22, 18, 15, 14, 10, 9, 6, 4

                  Llama a la función montículo

       22, 24, 18, 15, 14, 10, 9, 6, 4
ORDENAMIENTO HEAPSORT


         22, 24, 18, 15, 14, 10, 9, 6, 4

   Quedando finalmente el arreglo ordenado
             ascendentemente:

         24, 22, 18, 15, 14, 10, 9, 6, 4

Más contenido relacionado

Destacado (7)

Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Unidad 5
Unidad 5Unidad 5
Unidad 5
 
Radix Sort
Radix SortRadix Sort
Radix Sort
 
Ordenamiento por monticulo (heapsort)
Ordenamiento por monticulo (heapsort)Ordenamiento por monticulo (heapsort)
Ordenamiento por monticulo (heapsort)
 
Metodo quicksort
Metodo quicksortMetodo quicksort
Metodo quicksort
 
Quicksort
QuicksortQuicksort
Quicksort
 
Radix Sort
Radix SortRadix Sort
Radix Sort
 

Similar a Ordenamiento shell & heapsort

cálculo diferencial
cálculo diferencial cálculo diferencial
cálculo diferencial YunirCausil
 
Notación Científica y conversiones de unidades
Notación Científica y conversiones de unidadesNotación Científica y conversiones de unidades
Notación Científica y conversiones de unidadesHenry Ponce
 
Documento (1)
Documento (1)Documento (1)
Documento (1)tarecomar
 
Método de Ordenamiento Sort Shell
Método de Ordenamiento Sort ShellMétodo de Ordenamiento Sort Shell
Método de Ordenamiento Sort ShellAntonio Huertas
 
Asentamiento de las_edificaciones-libre
Asentamiento de las_edificaciones-libreAsentamiento de las_edificaciones-libre
Asentamiento de las_edificaciones-libreGerardo Lira Vargas
 
Programacion dinamicaaaa
Programacion dinamicaaaaProgramacion dinamicaaaa
Programacion dinamicaaaaJ_cordero
 
metodosdeordenamiento.pptx
metodosdeordenamiento.pptxmetodosdeordenamiento.pptx
metodosdeordenamiento.pptxLeydiCardona3
 
Presentacion de programacion 2
Presentacion de programacion 2Presentacion de programacion 2
Presentacion de programacion 2Cori Marcano
 
FDET: PROBLEMA RESUELTO DE TERMODINAMICA1
FDET: PROBLEMA RESUELTO DE TERMODINAMICA1FDET: PROBLEMA RESUELTO DE TERMODINAMICA1
FDET: PROBLEMA RESUELTO DE TERMODINAMICA1FdeT Formación
 
Problemas v. unidimensionales
Problemas v. unidimensionalesProblemas v. unidimensionales
Problemas v. unidimensionalesilt19
 
Ejercicios de variables unidimensionales
Ejercicios de variables unidimensionalesEjercicios de variables unidimensionales
Ejercicios de variables unidimensionalesInmaculada Leiva Tapia
 

Similar a Ordenamiento shell & heapsort (20)

Ordenamiento
OrdenamientoOrdenamiento
Ordenamiento
 
cálculo diferencial
cálculo diferencial cálculo diferencial
cálculo diferencial
 
Notación Científica y conversiones de unidades
Notación Científica y conversiones de unidadesNotación Científica y conversiones de unidades
Notación Científica y conversiones de unidades
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Problemas resueltos de ecuaciones e inecuaciones con intervalos
Problemas resueltos de ecuaciones e inecuaciones con intervalosProblemas resueltos de ecuaciones e inecuaciones con intervalos
Problemas resueltos de ecuaciones e inecuaciones con intervalos
 
Documento (1)
Documento (1)Documento (1)
Documento (1)
 
Método de Ordenamiento Sort Shell
Método de Ordenamiento Sort ShellMétodo de Ordenamiento Sort Shell
Método de Ordenamiento Sort Shell
 
Asentamiento de las_edificaciones-libre
Asentamiento de las_edificaciones-libreAsentamiento de las_edificaciones-libre
Asentamiento de las_edificaciones-libre
 
Programacion dinamicaaaa
Programacion dinamicaaaaProgramacion dinamicaaaa
Programacion dinamicaaaa
 
metodosdeordenamiento.pptx
metodosdeordenamiento.pptxmetodosdeordenamiento.pptx
metodosdeordenamiento.pptx
 
Solucion11
Solucion11Solucion11
Solucion11
 
Adri.pdf
Adri.pdfAdri.pdf
Adri.pdf
 
Presentacion de programacion 2
Presentacion de programacion 2Presentacion de programacion 2
Presentacion de programacion 2
 
FDET: PROBLEMA RESUELTO DE TERMODINAMICA1
FDET: PROBLEMA RESUELTO DE TERMODINAMICA1FDET: PROBLEMA RESUELTO DE TERMODINAMICA1
FDET: PROBLEMA RESUELTO DE TERMODINAMICA1
 
Lecciones 1qui 2p
Lecciones 1qui 2pLecciones 1qui 2p
Lecciones 1qui 2p
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 
Problemas v. unidimensionales
Problemas v. unidimensionalesProblemas v. unidimensionales
Problemas v. unidimensionales
 
Ejercicios de variables unidimensionales
Ejercicios de variables unidimensionalesEjercicios de variables unidimensionales
Ejercicios de variables unidimensionales
 
3150
31503150
3150
 

Ordenamiento shell & heapsort

  • 2. ORDENAMIENTO SHELL  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-arreglos tales que cada elemento esté separado k elementos del anterior (salto o gap).
  • 3. ORDENAMIENTO SHELL  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.
  • 4. ORDENAMIENTO SHELL  Pongamos un ejemplo: » Se pide ordenar ascendentemente este arreglo 74, 14, 21, 44, 38, 97, 11, 78, 65, 88, 30. n=11
  • 5. ORDENAMIENTO SHELL 1. k=n/2 >>> 11/2=5 74, 14, 21, 44, 38, 97, 11, 78, 65, 88, 30 30, 14, 21, 44, 38, 74, 11, 78, 65, 88, 97
  • 6. ORDENAMIENTO SHELL 30, 14, 21, 44, 38, 74, 11, 78, 65, 88, 97 30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97
  • 7. ORDENAMIENTO SHELL 30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97 30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97
  • 8. ORDENAMIENTO SHELL 30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97 30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97 Arreglo 5-ordenado
  • 9. ORDENAMIENTO SHELL 2. k=k/2 >>> 5/2=2 30, 11, 21, 44, 38, 74, 14, 78, 65, 88, 97 14, 11, 21, 44, 30, 74, 38, 78, 65, 88, 97 Arreglo 2-ordenado
  • 10. ORDENAMIENTO SHELL 3. k=k/2 >>> 2/2=1 14, 11, 21, 44, 30, 74, 38, 78, 65, 88, 97 11, 14, 21, 30, 38, 44, 65, 74, 78, 88, 97
  • 12. ORDENAMIENTO HEAPSORT Según Williams[2001] un montículo o montón se define como una secuencia de llaves hi que tienen la siguiente relación de orden: hi <=h2i y hi<=h2i+1 Para i= 1,2,…,N/2.
  • 13. ORDENAMIENTO HEAPSORT  Pongamos un ejemplo: » Ordenar descendente este arreglo: 9, 15, 6, 10, 4, 24, 18, 14, 22
  • 14. ORDENAMIENTO HEAPSORT Primero: Hacerlo un montículo. 9, 15, 6, 10, 4, 24, 18, 14, 22 Comparamos la posición 4 con la 8 y 9. 10<14 y 10<22 … (V)
  • 15. ORDENAMIENTO HEAPSORT 9, 15, 6, 10, 4, 24, 18, 14, 22 Comparamos la posición 3 con la 6 y 7. 6<24 y 6<18 … (V)
  • 16. ORDENAMIENTO HEAPSORT 9, 15, 6, 10, 4, 24, 18, 14, 22 Comparamos la posición 2 con la 4 y 5. 15<10 y 15<4 … (F) Se intercambia de posición quedando. 9, 4, 6, 10, 15, 24, 18, 14, 22
  • 17. ORDENAMIENTO HEAPSORT Puesto que se han hecho modificaciones se comprueba para i>2 9, 4, 6, 10, 15, 24, 18, 14, 22 9, 15, 6, 10, 4, 24, 18, 14, 22
  • 18. ORDENAMIENTO HEAPSORT 9, 4, 6, 10, 15, 24, 18, 14, 22 Comparamos la posición 1 con la 2 y 3. 9<15 y 9<6 … (F) Se intercambia de posición quedando. 4, 9, 6, 10, 15, 24, 18, 14, 22
  • 19. ORDENAMIENTO HEAPSORT Se comprueba para i>1 4, 9, 6, 10, 15, 24, 18, 14, 22 4, 9, 6, 10, 15, 24, 18, 14, 22 4, 9, 6, 10, 15, 24, 18, 14, 22
  • 20. ORDENAMIENTO HEAPSORT Ahora se repite esta secuencia pero intercambiando el primer termino por el ultimo y reduciendo en 1 el numero de términos del arreglo, y construyendo e montón con los n-1 primeros términos.
  • 21. ORDENAMIENTO HEAPSORT 4, 9, 6, 10, 15, 24, 18, 14, 22 22, 9, 6, 10, 15, 24, 18, 14, 4 Llama a la función montículo 6, 9, 18, 10, 15, 24, 22, 14, 4
  • 22. ORDENAMIENTO HEAPSORT Luego se sigue este proceso intercambiando el primer termino del nuevo montículo, ya no por el ultimo, sino por el penúltimo. Luego se procede a formar otro nuevo montículo con 1 término menos que el anterior : (n-1)-1 = n-2
  • 23. ORDENAMIENTO HEAPSORT 6, 9, 18, 10, 15, 24, 22, 14, 4 14, 9, 18, 10, 15, 24, 22, 6, 4 Llama a la función montículo 9, 10, 18, 14, 15, 24, 22, 6, 4
  • 24. ORDENAMIENTO HEAPSORT Este proceso se repite sucesivamente hasta llegar hasta que nuestro montículo a construir tenga n-n=0 términos:
  • 25. ORDENAMIENTO HEAPSORT 18, 22, 24, 15, 14, 10, 9, 6, 4 24, 22, 18, 15, 14, 10, 9, 6, 4 Llama a la función montículo 22, 24, 18, 15, 14, 10, 9, 6, 4
  • 26. ORDENAMIENTO HEAPSORT 22, 24, 18, 15, 14, 10, 9, 6, 4 Quedando finalmente el arreglo ordenado ascendentemente: 24, 22, 18, 15, 14, 10, 9, 6, 4