METODO DE ORDENACION POR SELECCION

Ordenación por selección, selecciona el elemento con el menor valor y lo intercambia con el primer
elemento, después de los restantes elementos , se obtiene de nuevo el menor valor y se lo intercambia
con el segundo y así sucesivamente hasta llegar a los dos últimos elementos.
Algoritmo:
 Buscar el elemento más pequeño de la lista.
 Intercambiarlo con el elemento ubicado en la primera posición de la lista.
 Buscar el segundo elemento más pequeño de la lista.
 Intercambiarlo con el elemento que ocupa la segunda posición en la lista.
 Se repite este proceso hasta que se haya ordenado toda la lista.
Ordenar la siguiente lista: 8 - 5 - 2 - 3 - 1
Comenzamos buscando el menor elemento de todos. Es el 1. Lo intercambiamos con el 8 y la lista
queda así:
1 - 5 - 2 - 3 - 8
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 5. La lista queda así:
1 - 2 - 5 - 3 - 8
Buscamos el menor elemento entre la tercera posición y la última. Es el 3, que intercambiamos con el
5:
1 - 2 - 3 - 5 - 8
El menor elemento entre la cuarta y quinta posición es el 5, que no intercambiamos.
1 - 2 - 3 - 5 - 8
Ya está la lista ordenada.
Desafortunadamente el ciclo externo, como en la ordenación de la burbuja, se ejecuta n-1 veces y el
ciclo interno ½(n) veces, esto significa que este método requiere ½(n²-n) comparaciones, lo que lo
hace muy lento para un gran número de elementos.


CODIGO FUENTE:


package vista;
import java.util.Scanner;

public class Principal {

    public static void main(String[] args) {
     
        Scanner t=new Scanner(System.in);
     
     
        System.out.println("Ingrese el tamaño del arreglo : ");
        int tamaño=t.nextInt();
     
        int[] arreglo=new int[tamaño];
        System.out.println("\nARREGLO NORMAL");
        for (int i = 0; i < arreglo.length; i++) {
            System.out.println("Ingrese el elemento: "+(i+1)+" : ");
            arreglo[i]=t.nextInt();
        }
     
        for (int i = 0; i < arreglo.length; i++) {
            System.out.print(arreglo[i]+" ");
        }
System.out.println("\nORDENANDO POR SELECCION");
     
        for (int i = 0; i < arreglo.length-1; i++) {
            int menor=arreglo[i];
            int pos=i;
            for (int j = i+1; j <arreglo.length ; j++) {
                if(arreglo[j]<menor){
               
                    menor=arreglo[j];
                    pos=j;
                }
            }

if (pos!=i){
                    int aux = arreglo[i];
                    arreglo[i] = arreglo[pos];
                    arreglo[pos] = aux;
                }
            }
        System.out.println("**************************");
            for (int k = 0; k < arreglo.length; k++) {
            System.out.print(arreglo[k]+" ");
}
}
}

Comentarios

Entradas populares