Está en la página 1de 3

Algoritmos de ordenación en Java.

Método de
Ordenación por Selección.
El método de ordenación por selección consiste en repetir los siguientes pasos:
Se busca el elemento más pequeño del array y se coloca en la primera posición.
Entre los restantes, se busca el elemento más pequeño y se coloca en la segunda
posición.
Entre los restantes se busca el elemento más pequeño y se coloca en la tercera
posición.
……..
Este proceso se repite hasta colocar el último elemento.
De forma gráfica el proceso sería el siguiente:
Array original a ordenar: [50, 26, 7, 9, 15, 27]

El método de ordenación por selección en java para ordenar un array de enteros A es el


siguiente:

//método java de ordenación por selección


public static void seleccion(int A[]) {
          int i, j, menor, pos, tmp;
          for (i = 0; i < A.length - 1; i++) { // tomamos como menor el primero
                menor = A[i]; // de los elementos que quedan por ordenar
                pos = i; // y guardamos su posición
                for (j = i + 1; j < A.length; j++){ // buscamos en el resto
                      if (A[j] < menor) { // del array algún elemento
                          menor = A[j]; // menor que el actual
                          pos = j;
                      }
                }
                if (pos != i){ // si hay alguno menor se intercambia
                    tmp = A[i];
                    A[i] = A[pos];
                    A[pos] = tmp;
                }
          }
}
import java.util.Scanner;

class ordenSeleccion{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
int temp;
int[] numeros=new int[5];
System.out.println("llenando arreglo");
for(int i=0;i<numeros.length;i++){
System.out.println("digite dato entero numero:-- " + i );
numeros[i]=sc.nextInt(); 
}

System.out.println("el orden original:....");


for(int i=0;i<numeros.length;i++){
System.out.println(i + " : " + numeros[i]);
}

System.out.println("ordenando por seleccion");

for(int i=0;i<numeros.length-1;i++){
int minimo=i;
for(int j=i+1;j<numeros.length;j++){
if(numeros[j]<numeros[minimo]){
minimo=j;
}
}
temp=numeros[i];
numeros[i]=numeros[minimo];
numeros[minimo]=temp;

}
System.out.println("orden correcto:...");
for(int i=0;i<numeros.length;i++){
System.out.println(i + " : " + numeros[i]);
}
}
}

public static int[] seleccion(int[] tabla) {


int menor;
int aux;
for (int i=0; i<tabla.length-1; i++) {
menor = tabla[i];
for (int j=i+1; j<=tabla.length-1; j++) {
if (tabla[j] < menor) {
aux = tabla[j];
tabla[j] = menor;
menor = aux;
}
}
tabla[i] = menor;
}
return tabla;
}

public static void main(String[] args) {


int[] tabla = {5,78,2,3,1,25,7,1,90,8,1,45};
int[] nuevaTabla = seleccion(tabla);
for (int i=0; i<nuevaTabla.length; i++) {
System.out.println(nuevaTabla[i]);
}
}

También podría gustarte