Lenguaje de Programacion
Lenguaje de Programacion II por Ana Haro  
  Inicio
  Introduccion a la estructura de datos
  Arreglos unidimencionales
  Recursividad
  Estructuras basicas de la informacion
  Asignacion secuencial y ligada
  Listas circulares y de doble liga
  Ordenacion por intercambio
  Ordenacion por seleccion
  Ordenacion por insercion
  Ordenaciones mejoradas
  Busqueda binaria
  Arboles
  Recorido de arboles binarios
  Representacion binaria de arboles
  Bibliografía
  Videos
Ordenacion por seleccion
Ordenación por SELECCIÓN
El algoritmo de selección también parte de un concepto bastante simple: recorrer todo el vector para buscar el elemento más pequeño y, una vez localizado, colocarlo en la primera posición. El elemento que estuviera ocupando la primera posición debe ser movido al lugar donde estaba el elemento más pequeño, claro, o de lo contrario se sobrescribiría y se perdería para siempre.
Después, haremos lo mismo buscando el segundo elemento más pequeño, moviéndolo a la segunda posición del vector. Luego buscamos el tercer elemento más pequeño, el cuarto, etc. Repitiendo esta búsqueda tantas veces como elementos tenga el vector, habremos conseguido ordenarlo.
A continuación se presenta una posible implementación en C. Observe que también se necesitan dos bucles anidados para culminar el proceso, por lo que el número de pasos necesarios es alrededor de N2 y, por lo tanto, el tiempo de ejecución también crece exponencialmente, como en el caso de la burbuja.
void ordena_vector(int v[LONGITUD_VECTOR])
{
 int i, j, minimo, posicion_minimo;
 for (i = 0; i < LONGITUD_VECTOR; i++)
 {
      minimo = v[i];
      posicion_minimo = i;
      for (j=i; j < LONGITUD_VECTOR; j++)
      {
         if (v[j] < minimo)
         {
             minimo = v[j];
             posicion_minimo = j;
             v[posicion_minimo] = v[i];
             v[i] = minimo;
   }
}
Hoy habia 13 visitantes (14 clics a subpáginas) ¡Aqui en esta página!
Hora  
   
unidep.prog2@hotmail.com  
   
Este sitio web fue creado de forma gratuita con PaginaWebGratis.es. ¿Quieres también tu sitio web propio?
Registrarse gratis