import java.io.*;
public class MetodosOrdenacion {
//Metodo main.
public static void main (String [] args) throws IOException{
BufferedReader bf = new BufferedReader (new InputStreamReader(System.in));
//creacion de vector de 5 componentes, pudiendo ser modificado el numero segun necesidades.
int [] nums = new int [5];
//Metodo LlenarVector, llena el vector dado con numeros aleatorios.
LlenarVector(nums);
//Menu para la eleccion de metodo de ordenacion.
String cad;
int resp;
do{
System.out.println("Introduce la respuesta");
System.out.println("1. Ordenar por el metodo de la baraja. \n"
+ "2. Ordenar por el metodo de seleccion directa. \n"
+ "3. Ordenar por el metodo de la burbuja. \n"
+ "4. Ordenar por el metodo de la burbuja 2.");
cad = bf.readLine();
resp = Integer.parseInt(cad);
}while(resp < 1 || resp > 4);
switch (resp) {
case 1:
MetodoDeLaBaraja(nums);
break;
case 2:
SeleccionDirecta(nums);
break;
case 3:
MetodoDeLaBurbuja(nums);
break;
case 4:
MetodoDeLaBurbuja2(nums);
break;
}
//Fin de menu para la eleccion de metodo de ordenacion.
//Metodo para mostrar los componentes por pantalla.
System.out.println("\n·Resultado final:");
MostrarVector(nums);
}//Fin de metodo Main.
//Metodo de la baraja para la ordenacion del vector.
public static void MetodoDeLaBaraja (int[]V){
System.out.println("·Metodo de la Baraja. \n"
+ "·Paso a paso:");
for (int i = 1; i < V.length; i++) {
int aux = V [i];
int j = i-1;
while (j > 0 && V[j] > aux) {
V[j+1] = V[j];
j = j-1;
}
if(V[j] > aux){
V[j+1] = V[j];
V[j] = aux;
}else{
V[j+1] = aux;
}
System.out.println("Vuelta numero: "+ i);
MostrarVector(V);
}
}
//Metodo de seleccion directa para la ordenacion del vector.
public static void SeleccionDirecta(int[]V){
System.out.println("·Metodo de Seleccion directa.");
for (int i = 0; i < V.length-1; i++) {
int k = i;
int aux = V[i];
for (int j = i+1; j < V.length; j++) {
if(V[j] < aux){
k = j;
aux = V[j];
}
}
V[k]=V[i];
V[i]=aux;
System.out.println("Vuelta numero: "+ i);
MostrarVector(V);
}
}
////Metodo de la burbuja para la ordenacion del vector.(eficiente y rapido)
public static void MetodoDeLaBurbuja(int[]V){
System.out.println("·Metodo de la burbuja.");
int aux;
boolean sw;
for (int i = V.length-2; i >= 0; i--) {
sw=true;
for (int j = 0; j <= i; j++) {
if (V[j] > V[j+1]) {
sw=false;
aux = V[j];
V[j] = V[j+1];
V[j+1] = aux;
}
}
if(sw == true){
break;
}
System.out.println("Vuelta numero: "+ i);
MostrarVector(V);
}
}
//Este metodo es menos eficiente que el original de la burbuja.
public static void MetodoDeLaBurbuja2(int[]V){
System.out.println("·Metodo de la burbuja 2.");
int aux = 0;
for (int i = 0; i < (V.length)-1; i++) {
for (int j = i+1; j < V.length; j++) {
if (V[i] > V[j]) {
aux = V[i];
V[i]= V[j];
V[j]= aux;
}//if
}//for
System.out.println("Vuelta numero: "+ i);
MostrarVector(V);
}//for
}
//Metodo para mostrar el vector.
public static void MostrarVector(int [] V){
for (int i = 0; i < V.length; i++) {
System.out.print("Componente "+i+": "+V[i]+". ");
}
System.out.println();
}
//Metodo para llenar el vector con numeros aleatorios de 1 a 10.
public static void LlenarVector(int [] V) {
for (int i = 0; i < V.length; i++) {
V[i] = (int)(Math.random()*10+1);
}
}
}//Fin de la clase.
Clase en java con diferentes métodos de ordenación.
Be the first to comment
You can use [html][/html], [css][/css], [php][/php] and more to embed the code. Urls are automatically hyperlinked. Line breaks and paragraphs are automatically generated.