ALGORITMO DE LA BURBUJA
El algoritmo de la burbuja es uno de los métodos de ordenación más conocidos y uno de los primeros que aprenden los programadores.
Consiste en comparar pares de elementos adyacentes en un array y si están desordenanos intercambiarlos hasta que estén todos ordenados.
Consiste en comparar pares de elementos adyacentes en un array y si están desordenanos intercambiarlos hasta que estén todos ordenados.
Si A es el array a ordenar, se realizan A.length-1 pasadas.
Si la variable i es la que cuenta el número de pasadas, en cada pasada i se comprueban los elementos adyacentes desde el primero hasta A.length-i-1 ya que el resto hasta el final del array están ya ordenados. Si los elementos adyacentes están desordenados se intercambian.
El método de ordenación de la burbuja en java para ordenar un array A es el siguiente:
public static void burbuja(int[] A) {
int i, j, aux;
for (i = 0; i < A.length - 1; i++) {
for (j = 0; j < A.length - i - 1; j++) {
if (A[j + 1] < A[j]) {
aux = A[j + 1];
A[j + 1] = A[j];
A[j] = aux;
}
}
}
}
Ejemplo de ejecución:
Ya están ordenados, pero los dos bucles for seguirán ejecutándose hasta el final.
El tiempo de ejecución del algoritmo de la burbuja es del orden O(n2)
Es uno de los peores algoritmos de ordenación en cuanto a tiempo de ejecución, solamente es recomendable su uso para ordenar listas con un número pequeño de elementos.
El tiempo de ejecución del algoritmo de la burbuja es del orden O(n2)
Es uno de los peores algoritmos de ordenación en cuanto a tiempo de ejecución, solamente es recomendable su uso para ordenar listas con un número pequeño de elementos.
Estoy impresionado por la sencillez de tus cursillos. Muchas gracias.
ResponderEliminarel procedimiento esta mal. Si en el segundo for, en la condicion se le resta a la longitud del vector "i" y a su vez se le resta 1 (A.length-i-1) en la primera vuelta causaria error, ya que si la longitud (tomando el ejemplo dado aqui) del vector es 6 y j inicia en 0, el segundo for llegaria hasta 6-0-1, osea hasta 5, y cuando entre al if y compare A[j+1] va a tirar un error de fuera de indice, porque estaria buscando la posicion 6, que no existe.
ResponderEliminarPara que el metodo funcione apropiadamente, en el segundo for, la condicion debe ser j<A.length-2, si se realiza asi, el metodo funciona a la perfeccion y no tira errores.
Fíjate que la condición del segundo for es j<A.length-i-1. Con una longitud 6, en la primera vuelta este for empieza con j = 0 y se repite mientras j < 6-0-1 o sea mientras j < 5. Cuando j vale 5 este for no se realiza. Si lo ejecutas comprobarás que funciona correctamente.
EliminarUn saludo y gracias por seguir el blog.
El comentario anterior tiene razón, lo ejecuté y tu código lanza una ArrayIndexOutOfBoundsException, el código no funciona del todo bien, pero muy buen aporte aún así
EliminarLo acabo de ejecutar para comprobarlo y a mí me funciona sin errores. Sabes en qué línea da el error? Si puedes escribe el código completo con el main del programa que estás usando para poder descubrir donde está el error.
EliminarSaludos
Me funciono correctamente y sin ningún tipo de error el utilizar for(j=0;j<A.length-i-1;j++). Usando el j<A.length-2, que sugiere el primer comentario ignora al último número del siguiente arreglo:
Eliminar2 8 9 6 5 1 3 7 4
PLISS QUISIERA SABER COMO PUEDE RESOLVER ESTE EJERCICIO ME FALTA LA ULTIMA PARTE
ResponderEliminarpackage MisAplicaciones;
/** APP QUE PERMITA REGISTRAR LA EDAD
* DE 5 PERSONAS Y MUESTRE UNA LISTADO
* DE EDADES EN ORDEN DESCEBDENTE(EMPLEAR VECTOR)
*/
import java.util.Vector;
import java.util.Scanner;
public class PruevaVector
{
public static void main(String[] xx)
{ //CREA OBJETO VECTOR
Scanner sc= new Scanner(System .in);
Vector vec1= new Vector();
vec1.addElement(17);
vec1.addElement(15);
vec1.addElement(18);
vec1.addElement(25);
vec1.addElement(45);
System.out.println("LAS EDADES INGRESADAS SON:");
for(int x=0;x<vec1.size();x++)
{
System.out.println("la edad es: "+vec1.elementAt(x));
}
}
}
Te iba ayudar pero vi la fecha y dije nel ya no le sirve
Eliminarayuda a mi si me sirve
EliminarCONFIRMO QUE EL CODIGO FUNCIONA, LO USE EN MI APP JAVA Y FUNCIONO PERFECTO SIN ERRORES!
ResponderEliminarMás facil e intuitivo:
ResponderEliminarfor (int i = 0; i < nums.length; i++) {
for (int j = i + 1; j < nums.length; j++) {
if (nums[i] > nums[j]) {
aux = nums[i];
nums[i] = nums[j];
nums[j] = aux;
}
}
}
Muchas gracias, me sirvió mucho
EliminarHola, gracias por dejar el comentario. Este código que propones ordena pero no por el método de la burbuja. El método de la burbuja compara cada elemento con el que tiene a justo a continuación y si están desordenados los intercambia. El código que tu propones compara un elemento con todos los demás hasta el final y si es mayor lo intercambia.
EliminarTienes razón Enrique a veces nos exigen utilizar un método especifico para resolver un problema o ejercicio y en este caso no lleva burbuja , así que tu procedimiento esta mejor. Muy buen aporte viejo.
Eliminarhay les va otro código para lo mismo. también muestra las pasadas.
ResponderEliminarpublic class Burbuja {
public static void main(String[] args) {
int [] arre={1, 23, 10, 9, 5};
burbuja (arre);
}
public static void burbuja(int [] A){
int j,k, aux;
boolean f=false;
String pasada="";
for (k=0;k<A.length;k++) {
for(j=1;j<A.length;j++) {
if(A[j]<A[j-1]){
aux=A[j];
A[j]=A[j-1];
A[j-1]=aux;
System.out.println("A[j]="+A[j]+" A[j-1]="+A[j-1]+" AUX="+aux);
for(int i=0;i<A.length;i++){
pasada+=" "+Integer.toString(A[i]);
}
System.out.println("Arreglo A={" +pasada+" }");
pasada="";
}
}
}
}
}
falta el main,,, ese como va??? ayudame plis,, es el unico error que me marca que falta la estructura main,,,, tu programa no marco ningun error,,, solo eso pasame el main plis,,,
EliminarEl codigo funciona bien
Eliminarel codigo funciona
Eliminarpero yo quisiera saber como le hago para que se pueda agregar valores
En este codigo pide que 5 usuarios ingresen su edad y esta imprime las 5 edades de mayor a menor, este le puede servir al amigo Anónimo que preguntaba por uno donde se pueda agregar valores.
Eliminarpackage javaapplication11;
import java.util.Scanner;
public class JavaApplication11 {
public static void main(String[] args) {
int arr[]=new int [5];
Scanner sc=new Scanner(System.in);
for(int i=0;i<arr.length;i++)
{
System.out.println("ingrese numero "+ i);
arr[i]=sc.nextInt();
}
for(int i = 0; i < arr.length - 1; i++)
{ for(int j = 0; j < arr.length - 1; j++) {
if (arr[j] < arr[j + 1])
{
int tmp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = tmp;
}
}
}
for (int i = 0; i < arr.length; i++) {
if (i==0) {
System.out.println("El mayor es: "+arr[i]);
}
else if (i==4) {
System.out.println("Y el Menor es: " +arr[i]);
}else
System.out.println("El siguiente es: "+arr[i]);
}
}
}
Gracias amigo
EliminarViejito como ordeno la diagonal principal de una matriz gracias
ResponderEliminarHola, he probado tu algoritmo tal como esta y funciona de maravilla. tanto en orden ascendente como en descendente.
ResponderEliminarsaludos.
a la verdad que el primero esta bien yo estudio ingenieria informatica pero este nivel esta muy por debajo del mio eso lo daba cuando estudiaba DPOO ahora en estructura de datos no se hace asi ya luego le cuelgo el codigo para que lo vean es mucho mejor
ResponderEliminarGracias por el comentario. Este algoritmo y en general todos lo ejercicios que aparecen en este blog están dirigidos a aquellos que están empezando en el mundo de la programación. Como dices, se estudian en niveles básicos de programación estructurada y orientada a objetos y son la base para luego poder continuar con niveles más avanzados ;)
Eliminarpues a mi me marca error,,, en donde esta el punto y coma,,,,,,
ResponderEliminary en la sentencia void int... tambien ahi marca error,,,,,
ResponderEliminarohh..!!
Eliminarmuy buen blog
ResponderEliminarMuchas gracias Carlos!!
Eliminara qui les dejo uno chequenlo
ResponderEliminarimport javax.swing.*;
public class burbuja{
static int arre[];
int n;
int aux ;
public burbuja(){
n=Integer.parseInt(JOptionPane.showInputDialog("dame el tamaño de el arreglo"));
arre=new int [n] ;
}
public void captura (){
int ele;
for (int i=0; i arre[j+1] ){
aux=arre[j];
arre[j]=arre[j+1];
arre[j+1]=aux;
}
}
}
}
public void imprimir(){
System.out.println ("el vector quedadela siguiente forma ");
for(int k=0; k<n;k++){
System.out.println ("elemento del vector "+k+" "+ arre[k]);
}
}
public static void main (String[] args) {
burbuja prueva=new burbuja();
prueva.captura();
prueva.ordenar ();
prueva.imprimir();
}
}
alguien me puede ayudar con el tema de arreglos ,métodos, propiedades get,lengt...
ResponderEliminargracias..
si claro que si, por un pete...
Eliminarburbujas para arraylist??? alquien sabe como
ResponderEliminaraunq me encantaria un merge
En esta entrada tienes un ejemplo
Eliminarhttp://puntocomnoesunlenguaje.blogspot.com.es/2013/02/arraylist-de-objetos-en-java.html
saludos
int aux=0.0;
ResponderEliminarfor(int j=0; j< datos.length-1;j++){
for(int i=0; i < datos.length-1; i++){
if(datos[i]>datos[i+1]){
aux = datos[i+1];
datos[i+1] = datos[i];
datos[i]=aux;
}
}
}
se me fue el 0.0 en la declaración de la variable aux, esque anteriormente la tenia declarada como doublé para un ejemplo diferente.. me funciona a la perfeccion este codigo
Eliminarenfermooooo
ResponderEliminarsi alguno de estos elementos del array fuera nulo imaginando que los elementos del array son objetos de una clase determinada, se colocarian al final del array?
ResponderEliminarjajajaja usa el meto array2[]=Array.sort(array[])
ResponderEliminarEn realidad este es el método burbuja, el que tu propones hace recorrer todo el vector la misma cantidad de veces que elementos tengas.. En un vector de 1 millon de elementos seria poco producente. Te dejo este código:
ResponderEliminarpublic static void burbuja(int [] A){
int i, j, aux;
for(i=0;i<A.length-2;i++){
j = i;
while (i <= j) && (A[j+1]<A[j]) {
aux=A[j+1];
A[j+1]=A[j];
A[j]=aux;
j--;
}
}
}
enrealidad a mi entendimiento, el metodo de la burbuja no es el bucle, si no
Eliminaraux=A[j+1];
A[j+1]=A[j];
A[j]=aux;
el cambiar los valores del array, por el que guardas en el aux, para mi ese es el metodo de la burbuja :P el cual puede aplicarse a diferenten casos, jeje perdon si estoy equibocado, soy nuevo en esto ...
con Vector, el vector que utilizo es indefinido, osea que no tiene un tamaño fijo, solo sirve para reordenar. suponiendo que tiene una longitud de n elementos, lo obtenemos con size();
ResponderEliminarVector numeros = new Vector<>();
int aux, longitud = numeros.size();
for (int i = 0; i < longitud - 1 ; i++) {
for (int j = 0; j < longitud -i -1; j++) {
if (numeros.get(j+1)>numeros.get(j)) {
aux = numeros.get(j+1);
numeros.set(j+1,numeros.get(j));
numeros.set(j, aux);
}
}
}
Buen aporte Alonso, Gracias por compartir.
Eliminaralguien me puede ayudar con esto:
ResponderEliminarpublic static void main(String[] args) {
Scanner read = new Scanner (System.in);
int vec1[] = new int [10];
int vec2[] = new int [10];
int arreglos[] = new int [10];
int aux=0, m=0, n=0;
for (int i=0; i<vec1.length-1; i++)
{
System.out.println("1... digite 10 elementos");
vec1[i]= Integer. parseInt(read.next());
for (m=0; m<vec1.length-i-1;m++)
{
if (vec1[m+1]<vec1[m])
{
aux= vec1[m+1]=vec1[m];
vec1[m+1]= vec1[m];
vec1[m]= aux;
}
}
}
for (int i=0; i<vec2.length-1; i++)
{
System.out.println("2... digite 10 elementos");
vec2[i]= Integer. parseInt(read.next());
for (n=0; n<vec2.length-i-1;n++)
{
if (vec2[n+1]<vec1[n])
{
aux= vec2[n+1]=vec2[n];
vec2[n+1]= vec2[n];
vec2[n]= aux;
}
}
}
esto es lo que tengo y debo ordenarlos de menor a mayor
asi dice el ejercicio:
EliminarSe tienen dos arreglos unidimensionales. Uno de ellos con 10 elementos y, el otro con 10 elementos. Los elementos de los dos arreglos se encuentran ordenados en forma ascendente. Elabore un algoritmo que entre los dos vectores se forme uno nuevo de N + M elementos, el cual contendrá los elementos de los dos arreglos ordenados de menor a mayor.
porfa me puedes ayudar con este algoritmo me piden que organice los usuarios de las maquinas por edades y que elimine un usuario y luego se actualice el algoritmo
ResponderEliminar//1)ENCUENTRE Y MUESTRE TODOS LOS DATOS DE UNA MAQUINA EN PARTICULAR
//2) LOS DATOS DE LA MAQUINA QUE MANIPULA UN OPERARIO EN PARTICULAR
//3) EL NUMERO DE SEXO MASCULINO O FEMENINO
#include
#include
#include
using namespace std;
const
int L=4;
const
int La=10;
struct Maquina
{
int codigom;
string nombre;
int htdiario;
};
struct buscar
{
int codigom;
};
struct organizaro
{
int edad;
};
struct Operario
{
int codigoo;
string nombre;
int edad;
string sexo;
int codigom;
};
Maquina vm[L];
Operario vo[La];
buscar vb[L];
int pm=-1;
int po=-1;
int buscarm(int codigo)
{
int encontrado,i;
encontrado=-1;
for(i=0;i<=pm;i++)
{
if(codigo==vm[i].codigom)
encontrado=i;
if(encontrado!=-1)
break;
}
return(encontrado);
}
void Llenarm()
{
Maquina tmp;
int p;
if(pm>tmp.codigom;
cout<<"Digite nombre"<>tmp.nombre;
cout<<"Digite duracion"<>tmp.htdiario;
if(pm==-1)
{
pm=pm+1;
vm[pm]=tmp;
}
else
{
p=buscarm(tmp.codigom);
if(p!=-1)
{
cout<<"El codigo ya existe"<>tmp.codigoo;
cout<<"..................."<>tmp.nombre;
cout<<"..................."<>tmp.edad;
cout<<"..................."<>tmp.sexo;
cout<<"..................."<>tmp.codigom;
if(po==-1)
{
bm=buscarm(tmp.codigom);
if(bm==-1)
cout<<"El programa no existe"<>tmp.codigom;
if (pm==-1)
bb=buscarm(tmp.codigom);
if(bb==-1)
cout<<"El programa no existe"<>codigoM;
for(i=0;i<=po;i++)
{
if(vo[i].codigom==codigoM){
tmp1=vo[i];
cout<>codigoA;
tmp1=buscaro(codigoA);
for(i=0;i<=po;i++)
{
if(vo[tmp1].codigoo==vm[i].codigom){
cout<>sexoo;
for(i=0;i<=po;i++)
{
if(vo[i].sexo==sexoo){
cont++;
}
}
cout<<"las personas con sexo "<>op;
do
{
if(op==1)
{
Llenarm();
system("cls");
}
else
if(op==2)
{
llenarO();
system("cls");
}
else
if(op==3)
{
system("cls");
MostrarM();
}
else
if(op==4)
{
system("cls");
MostrarO();
}
else
if (op==5)
{
system("cls");
MostrarOp_Ma();
}
else
if(op==6)
{
system("cls");
MostrarMS();
}
else
if(op==7)
{
system("cls");
MostrarS();
}
else
system("cls");
cout<<"HOLA BIENVENIDO REVISE EL SIGUIENTE MENU "<>op;
}while((op>=1)&&(op<=7));
exit(0);
return(0);
}
1. Determinar la solución del sgte problema a través de Java y Diagrama de Flujo usando estructuras repetitivas while, do-while. (10ptos).
ResponderEliminarDiseñar un programa para mostrar en pantalla los cubos de los 10 primeros números enteros y también la suma total de ellos.
ayudenme xfa
me podrían ayudar a realizar estos problemas, se los agradecería muchisimo!
ResponderEliminarElaborar un algoritmo el cual me permita ingresar los empleados y obreros
que trabajan en una empresa la cual me permita registrar a 10 empleados y
10 obreros, se debe tomar en cuenta su nombre apellido paterno y apellido
materno hora de entrada y salida y años de trabajo
2. Debe poder ordenar los empleados u obreros por medio del método de
burbuja.
3. Debe poder buscar a los empleados u obreros por medio de la búsqueda
secuencial.
4. Realizar un análisis de algoritmo el cual incluya lo siguiente.
a. Orden de complejidad
b. Impacto practico
c. Sentencias
d. Secuencias
e. Decisiones
f. Bucles
nel prro
Eliminarnecesito ordenar este array en orden acendente prodria alguien porfavor ayudarme
ResponderEliminarimport java.util.*;
public class ArrayAlex {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//Variables
int Promedio;
int i;
//Array
int[] Vect = new int[10];
//lectura de datos y llenar el array
System.out.println("Lectura de los Numeros del Array: ");
for (i = 0; i < 10; i++) {
System.out.print("Numero[" + i + "]= ");
Vect[i] = sc.nextInt();
}
Promedio=Vect[9]+Vect[8]+Vect[7]+Vect[6]+Vect[5]+Vect[4]+Vect[3]+Vect[2]+Vect[1]+Vect[0]/10;
//Decendente
System.out.println("Orden Decendente:");
System.out.println(Vect[9] +" "+ Vect[8] +" "+ Vect[7] +" "+ Vect[6] +" "+ Vect[5] +" "+ Vect[4] +" "+ Vect[3] +" "+ Vect[2] +" "+ Vect[1] +" "+ Vect[0]);
//Acendente
System.out.println("Orden Acendente:");
System.out.println(Vect[0] +" "+ Vect[1] +" "+ Vect[2] +" "+ Vect[3] +" "+ Vect[4] +" "+ Vect[5] +" "+ Vect[6] +" "+ Vect[7] +" "+ Vect[8] +" "+ Vect[9]);
//Mayor
System.out.println("Numero Mayor:");
System.out.println(Vect[9]);
//Menor
System.out.println("Numero Menor:");
System.out.println(Vect[0]);
//Promedio
System.out.println("Promedio:");
System.out.println(Promedio);
}
}
Alguien podria ayudarme con algo más sencillo que los demás, voy aprendiendo el metodo burbuja pero necesito un ejercicio que dice así:
ResponderEliminarLlenar un arreglo vectorial con 5 números y después acomodarlos de menor a mayor
Soy nueva en todo esto, hice un codigo con todo lo que he leido pero me marca error
//Este codigo es solo la parte donde ya estoy acomodando los números ingresados//
int aux;
boolean Cam = false;
while (true);
{
Cam = false;
for(int i = 1; i < array.length; i++)
{
if (array [i] < array [i-1])
{
aux = array [i];
array [i] = array [i-1];
array [i-1] = aux;
Cam = true;
}
}
if(Cam = false)
break
}
//Si me ayudan se los agradeceria mucho
Hola a todos quisiera hacer un metodo burbuja como lo hago tengo este pero quiero ordenarlos de arriba hacia abajo ayudenme por favor
ResponderEliminarimport 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");
}
}
}
Este comentario ha sido eliminado por el autor.
ResponderEliminarHola a todos quisiera hacer un metodo burbuja como lo hago tengo este pero quiero ordenarlos de arriba hacia abajo ayudenme por favor
ResponderEliminarimport 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");
}
}
}
Hola a todos quisiera hacer un metodo burbuja como lo hago tengo este pero quiero ordenarlos de arriba hacia abajo ayudenme por favor
ResponderEliminarimport 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");
}
}
}
Hola a todos quisiera hacer un metodo burbuja como lo hago tengo este pero quiero ordenarlos de arriba hacia abajo ayudenme por favor
ResponderEliminarimport 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");
}
}
}
Este comentario ha sido eliminado por el autor.
ResponderEliminarEste es más eficiente:
ResponderEliminarpublic static void burbuja(int [] A){
int i, j, aux;
boolean intercambios=true;
for(i=0;i<A.length-1 && intercambios;i++)
{
intercambios=false;
for(j=0;j<A.length-i-1;j++)
if(A[j+1]<A[j])
{
aux=A[j+1];
A[j+1]=A[j];
A[j]=aux;
intercambios=true;
}
}
}
Muy bueno su blog, muuuuchisimas gracias con mas experiencia hare aportes en esta pagina¡¡¡¡¡ Pulgar arriba¡¡¡¡
ResponderEliminaralguien que me ayude a crear un programa
ResponderEliminarAlguien que tenga el pseudocodigo de burbuja?
ResponderEliminarcomo hago un programa que grave mi nombre y apellido en cualquier lado de un array bideimencional por separado y despues lo muestre es para graficamente
ResponderEliminarimport java.io.*;
ResponderEliminarimport java.util.*;
import javax.swing.JOptionPane;
public class burbuja{
public static void main (String[]args) {
int a,j,aux=0,n,n2;
String num1,num2;
boolean a2=false;
int []numeros=new int[20];
num1=JOptionPane.showInputDialog("¿Cuantos numeros vas a comparar?");
n=Integer.parseInt(num1);
while (true){
for (int i=0;i<n;i++){
num2=JOptionPane.showInputDialog("Ingresa el numero");
n2=Integer.parseInt(num2);
numeros[i]=n2;
}
int i;
for(i=0;i<numeros.length-1;i++)
for(j=0;j<numeros.length-i-1;j++)
if(numeros[j+1]<numeros[j]){
aux=numeros[j+1];
numeros[j+1]=numeros[j];
numeros[j]=aux;
}
if (a2==false)
JOptionPane.showMessageDialog(null, numeros[i]);
break;
}
}
}
Alguien me.podria ayudar en este ejercisio de java es netbean.....
ResponderEliminarEn la u.l.a(universidad de los andes) se conoce el numero de.alumnos que ingresan es sus 4 diferentes carreras de ingenieria
(Civil,mecanica,eletrica y sistemas)en los ultimos 5 años.construya un programa que proporciones las siguientes informacion:
a)total de alumnos por año .
B)porcentaje de alumnos que ingresaron en.el.año X carrera Y.
C)en que año y en que carrera se dio el menor ingreso de alumnos.
D)en que año y en que carrera se dio el mayor..son de arreiglo bidimencionales....mi profesor lo quieres todo eso reflejado en una matriz....creo que como una nomina.........por favor le pido que me ayuden para poder pasar mi clase de introduccion ala programacion......sera que puedan hacerlo en clases ......este es mi correo romerobulls23@gmail.com....para que si pueden podrian mandar la carpeta del programa de netbean ahi ....por fa
alguien me podria ayudar en este ejecicio es urgente: ordenar un vector de n elementos en java
ResponderEliminarHOLA POR FAVOR NECESITO ESTO AHORA MISMO
ResponderEliminarMétodos de Ordenamiento, Búsqueda y Complejidad Temp oral.
(a)
Crear la clase SortNSearch.
(b)
Crear un méto do nombrado xSort, el cual recib e p or parámetro un ArrayList de tip o compa-
rable y lo ordena de la siguiente forma:
La primera mitad es ordenada de forma ascendente con el méto do Inserción Directa.
La segunda mitad es ordenada de forma descendente con el méto do de Burbuja.
Ejemplo:
El ArrayList de enteros [ 8 7 6 1 3 4 3 ] quedará de la forma [6 7 8 4 3 3 1]
No creo que sea un sitio del tipo hazme la tarea (y gratis).
ResponderEliminarhola
ResponderEliminarQUISIERA QUE ME AYUDARAN CON ALGO ME MANDARON HACER UN PSEUDOCODIGO SOBRE ESTE EJERCISIO ORDENAR EL ARRAY(VECTOR): 42 57 14 40 96 19 08 68 POR LOS METODOS DE INSERCCION Y BURBUJA CADA VEZ QUE REORGANICE EL VECTOR, SE DEBE MOSTRAR EL NUEVO VECTOR REFORMADO
ResponderEliminarAlguien sabe como hacer ese mismo metodo pero con arreglos bidimensionales?
ResponderEliminarDepende si quieres ordenar por filas o columnas. Se me ocurre que declares el procedimiento (burbuja) como una función a la cual invocar.
EliminarEn ordenamiento de burbuja como sera de mayor a menor que mostrara los números
ResponderEliminarPara ordenar de mayor a menor con el método de la burbuja solo hay que cambiar el operador y escribir > en lugar de <
Eliminarif(A[j+1] > A[j]){
........
hola chicos disculpen con una pregunta un ingeniero nos dejo una tarea de que el usuario pidiera 5 numeros y 5 edades y en y que lo mostrara en pantalla en forma de matrices pero que para ordenarlo teniamos que usar el metodo burbuja yo queria ver si alguno de ustedes me puede ayudar porfavor ya hice la primera parte pero lo del metodo de burbuja eso si no se como espero sus respuestas. Gracias
ResponderEliminarsegún wikipedia una burbuja es: Porción de aire u otro gas envuelta en una fina película de líquido o formada en el interior del mismo, que tiende a elevarse. , lo que significa que tu post está usando una falta muy grave y la RAE puede multarte con hasta 500.000eulos
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarestaba buscando el método de la burbuja en varias paginas y el tuyo me funciono a la perfección.
ResponderEliminarMe alegro de que te haya sido útil. Gracias Nelson.
Eliminarbuenas necesito ayuda código que el usuario ingrese cuantos personas van a ingresar y que le pida el nombre y la edad y con el método burbuja me ordene la edad y a partir de eso muestres los nombres con su respectiva edad
ResponderEliminarDesarrollar un programa que muestre una lista de espera de 10 pacientes, simulando un hospital con arreglos y el método de burbuja
ResponderEliminarNo
Prioridad
Paciente
Enfermedad
1
Terapia intensiva
Benito Juárez
Sin brazo
2
Terapia intensiva
Miguel hidalgo
Sin pierna
3
Gravedad
Josefa Ortiz
Desmayo en el trabajo
4
Gravedad
Melchor Ocampo
Fractura pie
5
Atención médica
Claudia Nodal
Gripe
Prioridad
1.- Terapia intensiva
2.- Gravedad
3.- Atención médica
Especificaciones
· El hospital cuenta con un espacio para 10 pacientes
· Tiene la capacidad de atender a pacientes de acuerdo a sus 3 prioridades
· Si llega un paciente nuevo la lista de espera se mueve, según sea la prioridad de atención
· Los que son PRIORIDAD 1 (Terapia Intensiva), deberán ser atendidos SIEMPRE, a menos que se hayan ocupado los 10 lugares.
· Si hay 10 pacientes PRIORIDAD 1 o 2 y en lista hay pacientes PRIORIDAD 3, deberán salir de la lista, únicamente se QUEDAD PRIORIDAD 1 y 2.
Dada el siguiente arreglo [2,9,5,8,12,4,7,25] realizar el ordenamiento empleando el método de la burbuja, el arreglo debe ser ordenado de manera ascendente (de menor a mayor)
ResponderEliminarhola alguien que me ayude
ResponderEliminar