Está en la página 1de 5

ALGORITMOS DE ORDENAMIENTO

En el mundo de la informática, quizá no haya otras tareas más importantes ni analizadas


que la ordenación y la búsqueda.
Estas rutinas prácticamente en todos los programas de bases de datos, asi como en
compiladores, interpretes y sistemas operativos.
ORDENACION

Es el proceso de colocar un conjunto de datos o elementos similares en un determinado


orden creciente o decreciente. Hay dos categorías de algoritmos de ordenación: la
ordenación de arreglos en memoria o en archivos de acceso aleatorio en disco y la
ordenación de archivos secuenciales en disco o cinta. Nosotros vamos a trabajar con la
primera categoría, que es la de mayor interés para la asignatura.
La principal diferencia entre la primera y segunda categoría es que en la primera, los
elementos siempre están todos disponibles para compararlos, en cambio en la segunda
solo se dispone de un elemento de comparación, por lo demás todos los métodos que se
estudien aquí, se pueden implementar a cualquier tipo de estructura que tengan los datos,
sea simple o compleja.

CLASES DE ALGORITMOS DE ORDENACION.

Hay tres metodosgenerales que se usan para ordenar un arreglo:


a)Por Intercambio
b)Por Selección.
c)PorInserción.

Hay muchos algoritmos de ordenación para cada uno de los tres métodos, cada algoritmo
tiene sus ventajas y desventajas, pero el criterio para juzgar un algoritmo de ordenación
generalmente se basa en las siguientes preguntas:
-Cuál es la rapidez del algoritmo en el caso medio?
-Que rapidez tiene en el mejor y peor caso?
-El algoritmo exhibe un comportamiento natural o no?

a) ALGORITMOS PARA EL MÉTODO DE INTERCAMBIO.

1.Ordenacion por Burbuja: Es la ordenación más conocida (y la menos recomendable), su


gran popularidad se basa en su nombre(fácil de recordar) y su simplicidad.

La Ordenación por el método de la Burbuja utiliza el método de intercambio, hace


comparaciones repetidas y si es necesario intercambios de elementos adyacentes. Su
nombre proviene por la similitud con las burbujas en un tanque de agua, donde a medida
que van apareciendo en el tanque, van buscando su nivel hasta alcanzar la superficie.

Ejemplo. Suponga que tiene un arreglo con los siguientes elementos : 8 5 2 3 1

Use el método de la burbuja para ordenarlo en forma ascendente.(de menor a mayor)

Se inicia la comparación del primero con todos los 8 5 3 1 2


demas
Índice=> 0 1 2 3 4
Primera comparación 8 con 5, se cambian quedando 5 8 3 1 2
asi
Índice=> 0 1 2 3 4
Segunda comparación 5 con 3, se cambian quedando 3 8 5 1 2
asi
Índice=> 0 1 2 3 4
Tercera comparación 3 con 1, se cambian quedando 1 8 5 3 2
asi
Índice=> 0 1 2 3 4
Cuarta comparación 1 con 2, No hay cambio 1 8 5 3 2
quedando asi
Índice=> 0 1 2 3 4
Una vez comparado el primero, se va a comparar el
segundo con todos los restantes elementos
Primera comparación 8 con 5 se cambian quedando 1 5 8 3 2
asi
Índice=> 0 1 2 3 4
Segunda comparación 5 con 3, se cambian quedando 1 3 8 5 2
asi
0 1 2 3 4
Tercera comparación 3 con 2, se cambian quedando 1 2 8 5 3
asi
Índice=> 0 1 2 3 4
Una vez comparado el segundo, se va a comparar el
tercero con todos los restantes elementos
Primera comparación 8 con 5, se cambian quedando 1 2 5 8 3
asi
Índice=> 0 1 2 3 4
Segunda comparación 5 con3, se cambian quedando 1 2 3 8 5
asi
Índice=> 0 1 2 3 4
Una vez comparado el tercero, se comparara el cuarto
con los restantes (solo falta uno)
Primera comparación 8 con 5 se cambian quedando 1 2 3 5 8
asi
Índice=> 0 1 2 3 4
Finalmente el arreglo esta ordenado

En este método el numero de comparaciones es siempre el mismo, ya que los ciclos se


repiten el numero de veces que se indique, aunque la lista ya este ordenada.Esto significa
que el método de la burbuja siempre requiere ½(n²-n) comparaciones, donde n es el
numero de elementos a comparar

Ejercicio: Implementar un algoritmo (en el lenguaje de su preferencia) que permita


ordenar un arreglo usando el método de la burbuja.

Tarea.

Que otros algoritmos existen que mejoran el mismo metodo?

ALGORITMOS PARA EL MÉTODO DE SELECCIÓN.

La ordenación por selección, selecciona el elemento con el menor valor y lo intercambia


con el primer elemento, después de los restantes elementos , se obtiene de nuevo el menor
valor y se lo intercambia con el segundo y asi sucesivamente hasta llegar a los dos últimos
elementos.

Algoritmo:
 Buscar el elemento más pequeño de la lista.
 Intercambiarlo con el elemento ubicado en la primera posición de la lista.
 Buscar el segundo elemento más pequeño de la lista.
 Intercambiarlo con el elemento que ocupa la segunda posición en la lista.
 Se repite este proceso hasta que se haya ordenado toda la lista.

Ordenar la siguiente lista: 8-5-2-3-1

Comenzamos buscando el menor elemento de todos. Es el 1. Lo intercambiamos con el 8 y


la lista queda así:

1-5-2-3-8

Ahora buscamos el menor elemento entre la segunda y la última posición. Es el 2. Lo


intercambiamos con el elemento en la segunda posición, es decir el 5. La lista queda así:

1-2-5-3-8

Buscamos el menor elemento entre la tercera posición y la última. Es el 3, que


intercambiamos con el 5:

1-2-3-5-8

El menor elemento entre la cuarta y quinta posición es el 5, que no intercambiamos.

1-2-3-5-8

Ya esta la lista ordenada.


Desafortunadamente el ciclo externo, como en la ordenación de la burbuja, se ejecuta n-1
veces y el ciclo interno ½(n) veces, esto significa que este método requiere ½(n²-n)
comparaciones, lo que lo hace muy lento para un gran número de elementos.

MÉTODO DE ORDENACION POR INSERCION.

La ordenación por inserción inicialmente ordena los dos primeros miembros del arreglo.
Después el algoritmo inserta el tercer elemento en su posición correcta de acuerdo a los
otros dos. A continuación se inserta el cuarto elemento en la posición correspondiente y
proceso continua hasta que todos los elementos han sido ordenados.

La ordenación por inserción es el último de los algoritmos sencillos de ordenación.

Ejemplo suponiendo que tenemos el siguiente arreglo: 4-3-5-2-1

Inicialmente hay que almacenar (guardar) el segundo elemento (3) que es el que se va a
comparar con el primero.

Temp toma el valor del segundo elemento: 3. Elprimer elemento es el 4. Ahora


comparamos: 3 es menor que 4. Por consiguiente desplazamos el 4 una posición a la
derecha y después

4-4-5-2-1

3-4-5-2-1 copiamos el 3 en su lugar. (Observe que 3 se ha guardado para evitar


que se perdiera)

El siguiente elemento es 5.(que hay que guardar) Comparamos con 4. Es mayor que 4, así
que no hay intercambios.

Continuamos con el 2 (que hay que guardar). Es menor que cinco: desplazamos el 5 una
posición a la derecha quedando:

3-4-5-5-1

Comparamos (el 2 que está guardado) con 4: es menor, así que desplazamos el 4 una
posición a la derecha:

3-4-4-5-1

Comparamos (el 2 que está guardado) con 3. Desplazamos el 3 una posición a la derecha:

3-3-4-5-1

Finalmente copiamos el 2 en su posición final:


2-3-4-5-1

El último elemento a ordenar es el 1(que se guarda). Que es menor que 5, así que
desplazamos el 5 una posición a la derecha:

2-3-4-5-5

Continuando con el procedimiento la lista va quedando así:

2-3-4-4-5
2-3-3-4-5
2-2-3-4-5
1-2-3-4-5

Hasta que finalmente la lista esta ordenada.

Ejercicio: Realizar el algoritmo que permita ordenar una lista mediante el método de
inserción.

METODO DE ORDENAMIENTO SHELL:El método se denomina Shell en honor de su inventor


Donald Shell. Es una mejora del método de inserción directa, utilizado cuando el arreglo
tiene un gran número de elementos. Este método no compara a cada elemento con el de su
izquierda, como en el de inserción, sino con el que está a una distancia dada (llamada
salto). Este salto es constante, y su valor inicial es LIM/2 (donde LIM es el número de
elementos, y la división es entera). Se van dando pasadas hasta que en una pasada(La
ultima) no se intercambie ningún elemento de sitio. Entonces el salto se reduce a la mitad,
y se vuelven a dar pasadas hasta que no se intercambie ningún elemento, y así
sucesivamente hasta que el salto vale 1.

Por ejemplo, lo pasos para ordenar el arreglo {40,21,4,9,10,35} mediante el método de


Shell serían:

Salto=3:
   Primera pasada:
   {9,21,4,40,10,35} <-- se intercambian el 40 y el 9.
   {9,10,4,40,21,35} <-- se intercambian el 21 y el 10.
Salto=1:
   Primera pasada:
   {9,4,10,40,21,35} <-- se intercambian el 10 y el 4.
   {9,4,10,21,40,35} <-- se intercambian el 40 y el 21.
   {9,4,10,21,35,40} <-- se intercambian el 35 y el 40.
 Segunda pasada:
   {4,9,10,21,35,40} <-- se intercambian el 4 y el 9.

Con sólo 6 intercambios se ha ordenado el arreglo, cuando por inserción se necesitaban


muchos más.

También podría gustarte