Análisis y Diseño de Algoritmos                                                                                                      

Prof: Ing. Victor Garro

Asistente: Marco Elizondo Vargas

 

ORDENAMIENTOS

 

Ordenamiento Seleccion

Este algoritmo también es sencillo. Consiste en lo siguiente:

Pseudocódigo en C.

Tabla de variables

Nombre

Tipo

Uso

lista

Cualquiera

Lista a ordenar

TAM

Constante entera

Tamaño de la lista

i

Entero

Contador

pos_men

Entero

Posición del menor elemento de la lista

temp

El mismo que los elementos de la lista

Para realizar los intercambios

 
    1. for (i=0; i<TAM - 1; i++)  
    2.      pos_men = Menor(lista, TAM, i);
    3.      temp = lista[i];
    4.      lista[i] = lista [pos_men];
    5.      lista [pos_men] = temp;
 

Nota:

Un ejemplo.

Vamos a ordenar la siguiente lista (la misma del ejemplo anterior :-) ):

4 - 3 - 5 - 2 - 1

Comenzamos buscando el elemento menor entre la primera y última posición. Es el 1. Lo intercambiamos con el 4 y la lista queda así:

1 - 3 - 5 - 2 - 4

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 3. La lista queda así:

1 - 2 - 5 - 3 - 4

Buscamos el menor elemento entre la tercera posición (sí, adivinaste :-D) y la última. Es el 3, que intercambiamos con el 5:

1 - 2 - 3 - 5 - 4

El menor elemento entre la cuarta y quinta posición es el 4, que intercambiamos con el 5:

1 - 2 - 3 - 4 - 5

Análisis del algoritmo.

Ventajas:

Desventajas:

Este es un algoritmo lento. No obstante, ya que sólo realiza un intercambio en cada ejecución del ciclo externo, puede ser una buena opción para listas con registros grandes y claves pequeñas. Si miras el programa de demostración notarás que es el más rápido en la parte gráfica (por lo menos en un PC lento y con una tarjeta gráfica mala como el mío x-|). La razón es que es mucho más lento dibujar las barras que comparar sus largos (el desplazamiento es más costoso que la comparación), por lo que en este caso especial puede vencer a algoritmos como Quicksort.

 

Free Web Hosting