Método de ordenación de Burbuja
Java
Publicado el 8 de Mayo del 2014 por Xavi (548 códigos)
267.852 visualizaciones desde el 8 de Mayo del 2014
Simple código, que solicita al usuario una lista de números y las ordena con el método burbuja.
import java.io.*;
public class burbuja
{
public static void main(String arg[]) throws IOException
{
/*creacion del objeto para leer por teclado*/
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
/*ingreso del tamaño de arreglos*/
System.out.print("\n Ingrese Numero de Datos a Ingresar : ");
int tam = Integer.parseInt(in.readLine());
/*creacion del arreglo*/
int arr[] = new int[tam];
System.out.println();
/*lectura del arreglo*/
int j = 0;
for (int i = 0 ; i < arr.length;i++)
{
j+=1;
System.out.print("Elemento " + j + " : ");
arr[i] = Integer.parseInt(in.readLine());
}
burbuja(arr);
}
static void burbuja(int arreglo[])
{
for(int i = 0; i < arreglo.length - 1; i++)
{
for(int j = 0; j < arreglo.length - 1; j++)
{
if (arreglo[j] < arreglo[j + 1])
{
int tmp = arreglo[j+1];
arreglo[j+1] = arreglo[j];
arreglo[j] = tmp;
}
}
}
for(int i = 0;i < arreglo.length; i++)
{
System.out.print(arreglo[i]+"\n");
}
}
}
Comentarios sobre la versión: Versión 1 (37)
Es super sencillo, solo tienes que copiar y ejecutar!!! son dos instrucciones:
javac burbuja.java
java burbuja
Explica que problema tienes en vez de quejarte tanto!!!
estoy trabajando en eclipse
import java. io. *;
El siguiente error que presentas va atado a este.
Saludos!
Tengo un problema con el código
Me sale error int tam=Integer.parseInt.(in.readLine()); agradecería su ayuda
int tam=Integer..parseInt(in.readLine());
seguro el problema debe estar antes de esa linea de codigo.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
if (arreglo[j] < arreglo[j + 1])
se debe cambiar el signo de '<' a '>', debe de quedar así
if (arreglo[j] > arreglo[j + 1])
para que mande los más livianos para arriba y los más pesados al fondo.
package paqueton;
public class Mainy {
public static void main(String[] args) {
int arreglo[] = {3, 5, 4, 2, 10, 50, 3, 14};
for(int i=0 ; i<arreglo.length -1; i++){
for(int j=0 ; j<arreglo.length -1; j++){
if(arreglo[j]>arreglo[j+1]){
int aux = arreglo[j];
arreglo[j]=arreglo[j+1];
arreglo[j+1]=aux;
}
}
}
for(int z=0 ; z<arreglo.length ; z++){
System.out.println(arreglo[z]);
}
}
}
Una pequeña desventaja de programación que yo tengo, me cuesta mucho ordenar matrices y vectores.
int j = 0;
for (int i = 0; i < arr.length; i++) {
j += 1;
System.out.print("Elemento " + j + " : ");
arr[i] = Integer.parseInt(in.readLine());
}
cuando puedes hacer esto
for (int i = 0; i < arr.length; i++) {
System.out.print("Elemento " + (i+1) + " : ");
arr[i] = Integer.parseInt(in.readLine());
}
if (arreglo[i] < arreglo[j + 1])
{
int tmp = arreglo[j+1];
arreglo[j+1] = arreglo[i];
arreglo[i] = tmp;
}
sabes como se podría arreglar?
boolean orden;
do {
orden = false;
for (int i = 0; i < (numbers.length - 1); i++){
if (numbers[i] > numbers[i + 1]){
int aux = numbers[i];
numbers[i] = numbers[i + 1];
numbers[i + 1] = aux;
orden = true;
}
}
}while (orden);