Академический Документы
Профессиональный Документы
Культура Документы
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 se usan en todos los programas de bases de datos, así como en
compiladores, intérpretes y sistemas operativos.
ORDENACION
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:
-Cual 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?
En este método el numero de comparaciones es siempre el mismo, ya que los ciclos se repiten el
número 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 número de elementos a comparar
Ejercicio: Implementar un algoritmo (en VBASIC) que permita ordenar un arreglo usando el método de
la burbuja.
Tarea. Consultar que otros algoritmos existen que mejoran el mismo método?
1-5-2-3-8
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
1-2-3-5-8
Ejercicio: Realizar el programa que permita ordenar una lista mediante el método de selección.
Inicialmente hay que almacenar (guardar) el segundo elemento (3) que es el que se va a comparar
con el primero.
La variable temp toma el valor del segundo elemento: 3. El primer 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
El siguiente elemento es 5. (hay que guardarlo) Comparamos con 4. Es mayor que 4, así que no hay
intercambios.
Continuamos con el 2 (hay que guardarlo). 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(hay que guardarlo). 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
Ejercicio: Realizar el algoritmo que permita ordenar una lista mediante el método de inserción.
2. 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.