Informe técnico - Unidad 5 Métodos de ordenamiento (Rubí Veronica)
-
Upload
rubi-veronica-chimal-cuxin -
Category
Education
-
view
48 -
download
0
Transcript of 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
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.
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
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.
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
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
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.
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.
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
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
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
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
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.