Discusión:Ordenamiento por selección

Contenido de la página no disponible en otros idiomas.
De Wikipedia, la enciclopedia libre

He puesto el aviso de información inexacta, porque tanto los ejemplos como el algoritmo son muy extraños.

El auténtico algoritmo de selección busca el mínimo elemento, y sólo cuando lo ha encontrado intercambia su posición con la que le corresponde en la lista.

El algoritmo que aparece aquí es un algoritmo raro, vamos, que no lo he encontrado en ningún lado. Si este algoritmo resulta ser una misteriosa variación del algoritmo de selección y se quiere dejar, aviso que es muchísimo más eficiente recorrer el segundo bucle en sentido inverso, como hace el algoritmo de la burbuja mejorado. DrJones 12:53 12 jun, 2005 (CEST)

Como dice DrJones, este no es el algoritmo de ordenamiento por selección, sino el algoritmo de la burbuja. Además hay una pequeña errata. Donde dice:

si lista[i] < lista[j]

Debería decir:

si lista[i] > lista[j]

no obstante, la implementación en C y en Basic es correcta.

--Angel Fernández Pineda 21:04 29 jun, 2005 (CEST)

Implementaciones

C:

for(i=0 ; i<n-1 ; i++)
{
   for(j=n ; j>i+1 ; j--)
   {
      if(x[i] > x[j])
      {
         temp=x[j];
         x[j]=x[i];
         x[i]=temp;
      }
   }
}

Basic:

For i = 1 To n - 1
   For j = n to i + 1
      If x(i) > x(j) Then
         temp = x(i)
         x(i) = x(j)
         x(j) = temp
      End If
   Next j
Next i