Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

16
Métodos de Ordenamientos Estructura de datos Unidad V Método de ordenamiento Rubi veronica chimal Cuxin. INSTITUTO TECNOLÓGICO SUPERIOR DE FELIPE CARRILLO PUERTO Ingeniería en sistemas computacionales

Transcript of Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

Page 1: Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

Métodos de Ordenamientos

Estructura de datos

Unidad V

Método de ordenamiento

Rubi veronica chimal Cuxin.

INSTITUTO TECNOLÓGICO SUPERIOR DE FELIPE CARRILLO PUERTO

Ingeniería en sistemas computacionales

Page 2: Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

Métodos de Ordenamientos

Introducción

En esta unidad aplicaremos el método de búsqueda pertinente en la solución de un problema real. Podemos consultar en fuentes bibliográficas los diversos algoritmos de búsqueda y analizarlos. Al igual la Implementación en un lenguaje de programación los métodos de búsqueda para un conjunto de n datos generados aleatoriamente de igual forma será un método de aprendizaje hacer una comparación de los métodos que se verán.

Page 3: Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

Métodos de Ordenamientos

Burbuja.

El método de ordenación por intercambio directo o método de la burbuja, es el más simple y consiste en comparar dos elementos adyacentes para determinar si se realiza un intercambio entre los mismos, esto en caso de que el primero sea mayor que el segundo (forma ascendente) o el caso de que el primero sea menor que el segundo (forma descendente).

El primer procedimiento del método de la burbuja es:

1. Generar un ciclo que inicie desde uno hasta el número de elementos del arreglo.

2. Generar un segundo ciclo dentro del anterior que inicie desde cero hasta el número de elementos del arreglo menos dos.

3. Dentro del segundo ciclo debe existir una comparación que determina el tipo de ordenamiento (ascendente o descendente) entre el primer elemento (posición generado por el segundo ciclo) y el segundo elemento (el que le  sigue), si la respuesta a la condición es verdadera se realiza un intercambio entre los dos elementos.

4. Para realizar el intercambio se genera un almacenamiento temporal, el cual guarda el dato del primer elemento, el segundo elemento toma el lugar del primero y en el lugar del segundo se coloca lo que contiene el almacenamiento temporal.

 

Una vez que los ciclos terminan la estructura debe quedar ordenada de forma ascendente o descendente, pero este procedimiento es considerado como el pero de los casos ya que si el número de elementos de la estructura es de 100, se tienen que realizar 9900 comparaciones entes de terminar la ejecución del método.

Un segundo procedimiento del método de la burbuja es:

1. Generar un ciclo que inicie desde cero hasta el número de elementos menos dos.

2. Generar un segundo ciclo desde el valor del ciclo anterior mas uno hasta el número de elementos menos uno;

3. Dentro del segundo ciclo debe existir una comparación que determina el tipo de ordenamiento (ascendente o descendente) entre el primer elemento (posición generada por el primer ciclo) y el segundo elemento (posición generada por el segundo ciclo), si la respuesta a la condición es verdadera se realiza un intercambio entre los dos elementos.

4. Para realizar el intercambio se genera un almacenamiento temporal, el cual guarda el dato del primer elemento, el segundo elemento toma el lugar del

Page 4: Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

Métodos de Ordenamientos

primero y en el lugar del segundo se coloca lo que contiene el almacenamiento temporal.

Una vez que los ciclos terminan la estructura debe quedar ordenada, la diferencia con el procedimiento anterior radica en el número de comparaciones y posibles intercambios que se presentan, en este segundo procedimiento, es menor ya que cada pasada que se le da al arreglo se realiza una comparación menos que en la pasada anterior.

Un tercer procedimiento del método de la burbuja es el siguiente:

1. Generar un ciclo que inicie desde uno hasta el número de elementos menos uno.

2. Generar un segundo ciclo que inicie desde el número de elementos menos uno y mientras que ese valor sea mayor o igual al del ciclo anterior (con decrementos).

3. Dentro del segundo ciclo debe existir una comparación que determina el tipo de ordenamiento (ascendente o descendente) entre el primer elemento (posición generada por el segundo ciclo) y el segundo elemento (posición generada por el segundo ciclo menos uno), si la respuesta a la condición es verdadera se realiza un intercambio entre los dos elementos.

4. Para realizar el intercambio se genera un almacenamiento temporal, el cual guarda el dato del primer elemento, el segundo elemento toma el lugar del primero y en el lugar del segundo se coloca lo que contiene el almacenamiento temporal

 

Este tercer procedimiento es muy similar al anterior con la diferencia que el elemento que va quedando es su lugar el primero no el último como en el caso anterior.

Funcionamiento de los algoritmos de ordenamiento

Quick sort

Dados los siguientes números

Para implementar este método se debe de recibir como argumentos el vector con los números, la posición inicial y la posición final del vector (vec, inicio(0),final(9)).  Las posiciones recibidas de inicio y final se deben de respaldar porque sus valores van  cambiar durante la ejecución del método. Los respaldos los llamaremos Izq y Der donde Izq tiene el valor recibido en inicio y Der el valor recibido de final. Estas variables se representan en el vector siguiente como las posiciones inicial y final del vector respectivamente. También se debe de sacar un pivote que esta dado por la suma de la posición inicial, final y dividida entre dos.

Page 5: Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

Métodos de Ordenamientos

Izq=0;inicio=0;

Der=9;final=9;

Pospivote=(inicio+final)/2=(0+9)/2=4;

Pivote=vec[Pospivote]=vec[4]=70

 pos 0 1 2 3 4 5 6 7 8 9valores 10 80 5

095 70 5 95 17 8

765

  Izq       Pivote         Der

Paso 1:             Incrementar Izq mientras que  el valor que se encuentra en la posición Izq sea menor que el pivote (se busca tener todos los números menores del lado izq del pivote) 

pos 0 1 2 3 4 5 6 7 8 9valores 1

080 5

095 70 5 95 17 8

765

    Izq     Pivote         Der

Paso 2:             Decrementar Der mientras que  el valor que se encuentra en la posición Der sea mayor que el pivote (se busca tener todos los números menores del lado izq del pivote)

pos 0 1 2 3 4 5 6 7 8 9valores 1

080 5

095 70 5 95 17 8

765

    Izq     Pivote         Der

Paso 3:             Como ya no se cumplen los pasos anteriores entonces se intercambian los números a los que apuntan Izq y Der (ya que el que apunta izquierda es mayor que pivote y viceversa el número que apunta derecha es menor que pivote) esto solo se realiza si Izq es menor o igual que Der (Izq<=Der), además se incrementa Izq y se decrementa Der.

pos 0 1 2 3 4 5 6 7 8 9Valore

s10 65 50 95 70 5 95 17 87 80

      Izq   Pivote       Der  

 

 

 

Page 6: Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

Métodos de Ordenamientos

Paso 4:             Se repite el paso 1,2,3 mientras que Izq sea menor o igual que Der Izq<=Der.

                       

                        Repetición paso 1pos 0 1 2 3 4 5 6 7 8 9valores 1

065 50 95 70 5 95 17 8

780

        Izq

Pivote         Der

 

                        Repetición paso 2pos 0 1 2 3 4 5 6 7 8 9valores 1

065 50 95 70 5 95 17 87 80

        Izq

Pivote     Der    

                        Repetición paso 3: intercambio

                       pos 0 1 2 3 4 5 6 7 8 9valore

s10 65 50 17 70 5 95 9

587 80

          Izq Pivote   Der      

 

                        Repetición paso 1:

                       pos 0 1 2 3 4 5 6 7 8 9valore

s10 65 50 17 70 5 95 9

587 80

          Izq Pivote   Der      

 

                        Repetición paso 2:

                       pos 0 1 2 3 4 5 6 7 8 9Valore 10 65 5 17 70 5 95 9 87 80

Page 7: Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

Métodos de Ordenamientos

s 0 5          Izq Pivote Der        

                        Repetición paso 3: Intercambiar

                       pos 0 1 2 3 4 5 6 7 8 9valore

s10 65 50 17 5 70 95 95 87 80

          Der Pivote Izq        

 

Ya no se cumple el paso 4 por lo que se avanza al paso cinco: Ya tenemos del lado izquierdo todos los números menores a 70 y del lado derecho los mayores a 70.

 

Paso 5: Llamar de manera recursiva a el mismo método solo si inicio<Der  enviando el vector,inicio,Der. (Se están enviando los valores menores al pivote).

 

Paso 6: Llamar de manera recursiva a el mismo método solo si Izq<final  enviando el vector,Izq,final. (Se están enviando los valores mayores al pivote).

 

Se repiten los pasos 1,2,3,4 con las dos partes enviadas.

 

Shellsort

 

Para implementar este método se debe de recibir el vector y con el ya se obtiene el tamaño del vector.

En este método se utiliza un intervalo que se calcula con el tamaño del vector dividido entre 2, de tal forma que el intervalo da la mitad del vector y se comparan los números de la posición 0, con el de la posición obtenida de intervalo, si el primero es menor que el segundo se intercambian, y se avanza al siguiente par (posición 1 con posición del intervalo mas 1) y así sucesivamente.

Page 8: Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

Métodos de Ordenamientos

Paso 1: Calcular el intervalo Interv=tam_vec/2;  Interv=8/2=4

Paso 2: Se compara la posición 0 con la posición 4 y si el primero es mayor que el segundo se intercambian.

pos 0 1 2 3 4 5 6 7valore

s20 66 2 26 48 3 60 8

  c       c      

Paso 2: Se compara la posición 1 con la posición 5 y si el primero es mayor que el segundo se intercambian.

pos 0 1 2 3 4 5 6 7valore

s20 66 2 26 48 3 60 8

    C       c    

                       pos 0 1 2 3 4 5 6 7valore

s20 3 2 26 4

866 60 8

      c       c  

Paso 3: Se compara la posición 2 con la posición 6 y si el primero es mayor que el segundo se intercambian.

 pos 0 1 2 3 4 5 6 7valore

s20 3 2 26 4

866 60 8

      c       c  

Paso 4: Se compara la posición 3 con la posición 7 y si el primero es mayor que el segundo se intercambian.

pos 0 1 2 3 4 5 6 7valore

s20 3 2 26 4

866 60 8

        c       c

 pos 0 1 2 3 4 5 6 7valore

s20 3 2 8 48 66 60 26

                 

Paso 5: Se vuelve a calcular el intervalo pero ahora con el calculado anteriormente entre dos. Interv=4/2=2.

Page 9: Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

Métodos de Ordenamientos

Paso 6: Se compara la posición 0 con la posición 2, 1 con 3,2 con 4,3 con 5,4 con 6 y así sucesivamente  y si el primero es mayor que el segundo se intercambian.

pos 0 1 2 3 4 5 6 7valore

s20 3 2 8 48 66 60 26

  c   c          

 pos 0 1 2 3 4 5 6 7valore

s2 3 20 8 48 66 60 26

    c   c        

 

 

                                  pos 0 1 2 3 4 5 6 7valore

s2 3 20 8 48 66 60 26

      c   c      

                                  

                                  pos 0 1 2 3 4 5 6 7valore

s2 3 20 8 48 66 60 26

        c   c    

                       pos 0 1 2 3 4 5 6 7valore

s2 3 20 8 48 66 60 26

          c   c  

 pos 0 1 2 3 4 5 6 7valore

s2 3 20 8 48 66 60 26

            c   c

 pos 0 1 2 3 4 5 6 7

Page 10: Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

Métodos de Ordenamientos

valores

2 3 20 8 48 26 60 66

                 

Paso 5: Se vuelve a calcular el intervalo pero ahora con el calculado anteriormente entre dos. Interv=2/2=1.

Paso 6: Se compara la posición 0 con la posición 1, 1 con 2,2 con 3,3 con 4,4 con 5 y así sucesivamente  y si el primero es mayor que el segundo se intercambian.

pos 0 1 2 3 4 5 6 7valore

s2 3 20 8 48 26 60 66

  c c            

 pos 0 1 2 3 4 5 6 7valore

s2 3 20 8 48 26 60 66

    c c          

 pos 0 1 2 3 4 5 6 7valore

s2 3 8 20 4

826 6

066

      C c        

 pos 0 1 2 3 4 5 6 7valore

s2 3 8 20 48 26 60 66

        c c      

 pos 0 1 2 3 4 5 6 7valore

s2 3 8 20 48 26 60 66

          c c    

 pos 0 1 2 3 4 5 6 7valore

s2 3 8 20 26 48 60 66

          c c    

 

Page 11: Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

Métodos de Ordenamientos

pos 0 1 2 3 4 5 6 7valore

s2 3 8 20 26 48 60 66

            c c  

 

 pos 0 1 2 3 4 5 6 7valore

s2 3 8 20 26 48 60 66

              c c

 

Radix

 Este método permite ordenar los números a través de los dígitos que contienen los números utilizar estructuras dinámicas (colas).

 pos 0 1 2 3 4 5 6 7valore

s125 7 58 17 5 328 168 218

                 

Paso 1: Checar el último digito de cada número y ponerlo en la columna correspondiente (cola) a su valor.

pos 0 1 2 3 4 5 6 7valore

s125 7 58 17 5 328 168 218

                                   Dígitos d0 d1 d2 d

3d4 d5 d6 d7 d8 d9

            125   7 58              5   17 328                    168                    218  

 Paso 2:  Se sacan cada uno de los valores de las colas y se almacenan en el vector a partir de la cola cero.

 pos 0 1 2 3 4 5 6 7valore 125 5 7 17 58 328 168 218

Page 12: Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

Métodos de Ordenamientos

s

 Se checa el segundo dígito más a la izquierda de los números y se almacenan en su cola respectiva a su valor, los que no tienen digito se almacenan en la cero.

 Dígitos

d0 d1 d2 d3 d4

d5 d6 d7 d8

d9

  5 17 125     58 168        7 218 328              

 Paso 3:  Se sacan cada uno de los valores de las colas y se almacenan en el vector a partir de la cola cero.

 Pos 0 1 2 3 4 5 6 7valore

s5 7 17 218 12

5328 58 168

 Se checa el segundo dígito más a la izquierda de los números y se almacenan en su cola respectiva a su valor, los que no tienen digito se almacenan en la cero.

 Dígitos

d0 d1 d2 d3 d4 d5

d6 d7 d8

d9

  5 125 218 328              7 168                  17                    58                  

 Paso 3:  Se sacan cada uno de los valores de las colas y se almacenan en el vector a partir de la cola cero.

 Pos 0 1 2 3 4 5 6 7valore

s5 7 17 5

8125 168 218 328

 

Como ya no se tienen más dígitos se termina con el proceso y ya quedan ordenados.

Conclusión

Page 13: Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)

Métodos de Ordenamientos

Al finalizar esta unidad entendemos que el Radix son las representaciones de enteros que son procesadas por los algoritmos de ordenamiento se les llama a menudo "claves", que pueden existir  por sí mismas o asociadas a otros datos. Así como el método Shell que es una versión mejorada del método de inserción directa. Este método también se conoce con el nombre de inserción con incrementos decrecientes.En el método de ordenación por inserción directa cada elemento se compara para su ubicación correcta en el arreglo, con los elementos que se encuentran en la parte  izquierda del mismo. En esta unidad se aprendió su utilización de una manera muy sencilla.