sábado, 14 de julio de 2012

Algoritmo de Ordenacion por Selección


Características.

• Su tiempo de ejecución es O(N2) para el mejor, peor y caso promedio.
• Es el más fácil de codificar de los mostrados en este documento.
• Si el array de datos es A y su tamaño es N, lo que hace el algoritmo, para cada i de
   [0..N-2] es intercambiar A[i] con el mínimo elemento del subarray [A[i+1], ...,
    A[N]].
• Dado que es muy simple de codificar, aunque no tiene los mejores tiempos de
  ejecución, es apropiado utilizarlo para arrays de datos relativamente pequeños.
Ejemplo 


void
intercambiar (Dato * A, int i, int j)
{
Dato tmp = A[i];
A[i] = A[j];
A[j] = tmp;
}
void
ordenacion_seleccion (Dato * A, int N)
{
int i, j, k;
for (i = 0; i < N - 1; i++)
{
for (k = i, j = i + 1; j < N; j++)
if (A[j] < A[k])
k = j;
if (k != i)
intercambiar (A, i, k);
}
}

No hay comentarios:

Publicar un comentario