Está en la página 1de 8

Estructura de datos

Unidad: 2. Ordenacin y bsqueda


Actividad: Actividad 1. Mtodos de ordenacin
Nombre: Luis Manuel Celis Ruiz
Docente:
Folio:
Carrera: Ingeniera en Desarrollo de Software
Grupo:
Fecha:
Correo Institucional:

Mtodos de ordenacin
Seleccin
El mtodo de ordenacin por seleccin (Selection Sort) consiste en comparar el primer
elemento del array con el segundo, el segundo con el tercero y as sucesivamente hasta
encontrar el elemento ms pequeo e intercambiarlo por el que est en la primera posicin,
luego se vuelve a buscar el siguiente ms pequeo y se intercambia con la segunda posicin
hasta que la lista quede ordenada.
Ejemplo:
A
0
6

A
1
4

A
2
2

A
3
1

A
4
3

A
5
5

Se compara el 6 con el 4, 4 es menor, se compara 4 con 2, 2 es menor, se compara 2 con 1,


1 es menor, se compara 1 y 3, 1 sigue siendo menor, se compara 1 y 5, 1 sigue siendo
menor, 1 (A3) se intercambia con 6 (A0) y quedara:
A
0
1

A
1
4

A
2
2

A
3
6

A
4
3

A
5
5

Siguiendo el mismo proceso se intercambia 2 y 4 (A2 y A1)


A
0
1

A
1
2

A
2
4

A
3
6

A
4
3

A
5
5

Luego 3 con 4 (A4 y A2)


A
0
1

A
1
2

A
2
3

A
3
6

A
4
4

A
5
5

A
0
1

A
1
2

A
2
3

A
3
4

A
4
6

A
5
5

Por ltimo 5 y 6 (A5 y A4)

Luego 4 con 6 (A4 y A3)

A
0
1

A
1
2

A
2
3

A
3
4

A
4
5

A
5
6

Dado que en cada posicin solo puede haber un valor, se necesita de una memoria
temporal que permita respaldar el valor de una posicin antes de sobrescribirla. Ejemplo:

A0
2

A1
1

2
Aqu el valor de A0 es respaldado en la memoria temporal y el valor de A1 reemplaza al de
A0 y el de A0 en la memoria temporal reemplaza al de A1.
Ventajas:

Funciona bien con listas pequeas


No requiere memoria adicional ms que la que se necesita para hacer el intercambio
entre posiciones

Desventajas:

Es lento
Realiza numerosas comparaciones y resulta nada factible para listas enormes

Insercin
El mtodo de ordenamiento por insercin consiste en comprobar que si el elemento a la
izquierda es mayor se intercambia la posicin, hasta encontrarse con un valor menor que l o
hasta llegar al inicio.
Ejemplo:
6

El elemento 6 al estar al inicio se puede considerar que est ordenado y por ello se pasa al
elemento 4 y aplicamos la regla: cuando el elemento a la izquierda sea mayor se
intercambia la posicin, en este caso se intercambian los elementos 4 y 6. Quedara como:
4

Como se entiende que 4 y 6 estn ordenados pasamos al elemento 2 y como 4 es mayor


intercambiamos posicin hasta que se encuentre con un valor menor a su izquierda o hasta
el inicio. El resultado sera el siguiente:

A
0
4
4
2

A
1
6
2
4

A
2
2
6
6

A
3
1
1
1

A
4
3
3
3

A
5
5
5
5

Podemos ver como el 2 se ha movido a la posicin 1 y luego a la posicin 0. Ahora desde el


elemento 1 (A3) intercambiamos posicin hasta que a su izquierda encuentre un elemento
menor o hasta el inicio. El resultado es el siguiente:
1

Desde el elemento 3 intercambiamos posiciones aplicando la regla:


1

En este caso el elemento 3 se encontr con un elemento menor a l, en este caso el 2. Por
ltimo tenemos al elemento 5 que a su izquierda hay un elemento mayor y por ello se
intercambia con este.
1

Ventajas:

Al igual que el mtodo de seleccin funciona muy bien en listas pequeas


No requiere memoria adicional ms que la que se necesita para hacer el intercambio
entre posiciones

Desventajas:

Realiza demasiadas comparaciones y se vuelve lento en listas grandes

Burbuja o burbujeo

Este mtodo es el ms popular para aprender el concepto de ordenacin, pero es el menos


eficiente y por ello no se recomienda su uso en ningn caso excepto como tema de
aprendizaje. El mtodo consiste en hacer comparaciones de dos elementos e ir
ordenndolos en forma ascendiente intercambindolos, esta comparacin de elementos
debe realizarse sobre todo el array aun si no hace los intercambios por tener elementos
ordenados. Por ejemplo:
6

Aqu el 6 se compara con el 4 y se intercambian, se compara con el 2 y se intercambian, se


compara con el 5 y se intercambian, se compara con el 3 y se intercambian, se compara con
el 1 y se intercambian, quedara de la siguiente manera:
4
4
4
4
4

6
2
2
2
2

2
6
5
5
5

5
5
6
3
3

3
3
3
6
1

1
1
1
1
6

Como podemos ver el 6 hizo comparaciones y avanz a la ltima posicin debido a que no
encontr un nmero mayor que l. Ahora el segundo recorrido:
2
2
2

4
4
4

5
3
3

3
5
1

1
1
5

6
6
6

Como podemos ver, en la comparacin el 4 y 5 no se intercambiaron debido a que el 5 es


mayor y est a la derecha, finalmente l se compar el 5 y el 6 pero estos estaban
ordenados de ah la falta de eficiencia de este mtodo de ordenamiento. Ahora el tercer
recorrido:
2
2

3
3

4
1

1
4

5
5

6
6

Aqu sucede lo mismo, algunos intercambios se realizan y otros no, pero aun as todo el
recorrido debe hacerse. El 4 y 5 se compraran pero no se intercambian, al igual que el 5 y 6.
El cuarto recorrido:
2
1

1
2

3
3

4
4

5
5

6
6

Nuevamente el algoritmo hace otro recorrido ya que, aunque aparentemente ya est


ordenado el array, no hay forma de guardar cada intercambio. El algoritmo debe asegurar
que el array est ordenado.
1 2 3
Ventajas:

Fcil de implementar

Desventajas:

Es el mtodo ms ineficiente de todos.

Quicksort
El Mtodo de ordenamiento quicksort es el ms complejo y tal vez el ms difcil de
comprender, sin embargo es el ms eficiente. Este mtodo consiste en dividir en dos partes
el array y separar un nmero cualquiera que funcione de pivote, este nmero nos servir
para hacer las comparaciones, lo que se busca que es que los nmeros menores pasen al
lado izquierdo y los mayores al derecho. Si en la comparacin el pivote resulta ser mayor o
menor al valor comparado se intercambia el derecho con el izquierdo. Ejemplo:
5

De este array tomamos el valor pivote, que puede ser cualquier nmero, aunque en la
tcnica resulta mejor elegir elementos del inicio, centro o fin de array as como sacar la
media o promedio de la lista sumando los valores y dividindolos entre la cantidad de ellos.
En este caso tomamos el 4.
5

Hacemos la comparacin hasta que el resultado de ambos lados sea verdadero


4<5= verdadero
4>=1= verdadero
Al ser verdaderas las comparaciones, se intercambian los valores de posicin y continuamos.

4<3=falso
_________________________
1

4<7= verdadero
4>=2= verdadero
Aqu la comparacin con el 3 result ser falsa y por eso nos corremos al siguiente valor para
comparar. El resultado de ambas comparaciones permite el intercambio.
1

Los ndices se cruzan en el 6, eso significa que intercambiaremos los valores dado que 4<6
es verdadero.
1

Aqu ya tenemos listas las dos particiones o dos subarrays, pero para el segundo recorrido
debemos elegir un nuevo pivote por cada particin. Si usamos el mtodo de seleccin de
pivote media, del lado izquierdo usaremos el 2 y del derecho el 6.
1

2<1= falso
1

Como los ndices se cruzan de nuevo, cuando se cumpla la comparacin verdadera se


intercambia.

Ahora continuamos con la particin derecha


1

6<7= verdadero
6>=5= verdadero
1

Tras el intercambio, como la ordenacin es de izquierda a derecha, los ndices se vuelven a


cruzar en el 7.
6<7= verdadero
1

El arrays ordenado. Sin embargo hay que mencionar que aunque este mtodo es el ms
rpido, se necesita que los nmeros estn colocados de tal manera que se cumplan las
reglas, tambin es necesario elegir bien el pivote, pues de no hacerse as, el ordenamiento
puede convertirse en el ms lento menos eficiente de todos, ese sera el peor de los casos.
En el mejor de los casos, el pivote est en el centro y las particiones seran muy rpidas de
ordenar. Con este mtodo, el ordenamiento rpido es cuestin de azar.
Ventajas:

No necesita memoria adicional


Rpido ordenamiento cuando el pivote queda en el centro y divide perfectamente las
particiones.

Desventajas:

Saber seleccionar adecuadamente el pivote


Recursividad
Gran diferencia entre el mejor y el peor de los casos
Consume gran cantidad es memoria cuando el array es muy grande