Ordenación por Selección

El algoritmo de ordenación por selección recorre todo el arreglo desde la primera posición buscando el menor elemento de todos. Cuando termina, lo reemplaza por el elemento de la primera posición y repite todo el proceso con el segundo elemento y así sucesivamente.


Ejemplo:


Tenemos el vector original con los siguientes valores.

Iteración 1:

Se selecciona el número 17 y se intercambia por el 45.


Iteración 2:

Se selecciona el 21 y se intercambia por el 45.


Iteración 3:

Se selecciona el 23, no hay cambio.


Iteración 4:

Se selecciona el 45 y se intercambia por el 67.


Finalmente vector ordenado.

Código del algoritmo selección

public class Seleccion {

        public static void main(String[] args) {
                int vec[]={45,17,23,67,21};
                System.out.println("Vector original");
                imprimirVector(vec);
                System.out.println("\n");
                vec=ordenacionSeleccion(vec);
                imprimirVector(vec);
        }

        public static int[] ordenacionSeleccion(int vec[]){
                final int N=vec.length;
                for(int i=0;i<N;i++){
                        int posMenor=i;
                        for(int j=i+1;j<N;j++){
                                if(vec[j]<vec[posMenor])
                                        posMenor=j;
                        }
                        if(posMenor!=i){
                                int temp=vec[i];
                                vec[i]=vec[posMenor];
                                vec[posMenor]=temp;
                        }
                        System.out.print("iteracion: "+i+": ");imprimirVector(vec);System.out.println();
                }
                
                return vec;
        }
        
        public static void imprimirVector(int vec[]){
                for(int i=0;i<vec.length;i++){
                        System.out.print(vec[i]+" ");
                }
        }
}