Autor
|
Tema: Ordenamiento de array mediante burbuja (Leído 3,568 veces)
|
luchi
Desconectado
Mensajes: 71
|
Hola a todos. Llevo un tiempo pasando por aquí y la verdad esque el foro está genial, me pasaré más seguido por aquí para aprender y ayudar en lo que pueda. Echas las presentaciones, lo cierto esque tengo un problema: Lo que tengo que hacer es, teniendo dos arrays de enteros, meterlos dentro de un tercero, hasta ahí todo bien, el problema, esque, además de meterlos, tengo que ordenarlos utilizando el método de la burbuja y según éste código, lo que hace es ordenarme los tres primeros números: package array;
class pedir{ public void arrays(int []a1, int[]a2){ //Se introducen dos arrays dentro de un tercero int[]a3=new int[a1.length+a2.length]; int i; int j; for( i=0;i<a1.length;i++){ a3[i]=a1[i]; } for( i=0;i<a2.length;i++){ a3[a1.length+i]=a2[i];} for( j=0;j<a3.length;j++){ System.out.print(a3[j]); } //Hasta aquí el programa funciona bien //Ahora viene el ordenarlo mediante la burbuja int aux; for(int k=a3.length;k>0;k--){ for(int y=0;y<i-1;y++){ if(a3[y]<a3[y+1]){ aux = a3[y+1]; a3[y+1]=a3[y]; a3[y]=aux; } System.out.println(a3[y]); } } } } public class Array {
public static void main(String[] args) { pedir arreglo=new pedir(); int[] aray1={5,4,3,2,1}; int [] array2={9,8,7,6}; arreglo.arrays(aray1, array2); } }
|
|
|
En línea
|
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
Este es el método de la burbuja. Lo encontré en mi repertorio public static void ordenar( int arreglo2[] ) { int almacen; for( int pasada = 1; pasada < arreglo2.length; pasada++ ) { for( int elemento = 0; elemento < arreglo2.length - 1; elemento++ ) { if ( arreglo2[ elemento ] > arreglo2[ elemento +1 ] ) { almacen = arreglo2[ elemento ]; arreglo2[ elemento ] = arreglo2[ elemento + 1 ]; arreglo2[ elemento + 1 ] = almacen; } } } System. out. println( "\n\nElementos del arreglo ordenados\n" ); for(int indice = 0; indice < arreglo2.length; indice++ ) System. out. print( arreglo2 [indice ] + " " ); }
Espero te sirva. Saludos.
|
|
|
En línea
|
abc
|
|
|
luchi
Desconectado
Mensajes: 71
|
Muchas gracias , después de probar mucho, al fin un método de la burbuja que funcione. Por cierto, otra duda ¿cuál es la diferencia entre bubblesort y Cocktail sort? ¿Sólo cambia la forma de hacerlo, pero el resultado es el mismo? Esque no me ha quedado claro. Gracias.
|
|
|
En línea
|
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
Cocktail sort es una ligera variación de Bubble sort. Se diferencia en que en lugar de pasar repetidamente a través de la lista de abajo hacia arriba, pasa alternativamente de abajo hacia arriba y luego de arriba a abajo.
La razón de esto es que Bubble sort sólo pasa a través de la lista en una dirección y por lo tanto sólo se puede mover elementos hacia atrás cada iteración.
Se puede lograr un rendimiento ligeramente mejor que Bubble sort estándar.
|
|
|
En línea
|
abc
|
|
|
trolleoatodos
Desconectado
Mensajes: 29
|
Bueno mejoré el código que tenías , y aquí va funciona casi perfect, debes cambiar d versión de algoritmo porque estaba mal import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;
class pedir{ public void arrays(int []a1, int[]a2) throws IOException{ //Se introducen dos arrays dentro de un tercero int[]a3=new int[a1.length+a2.length]; int i; int j; for( i=0;i<a1.length;i++){ a3[i]=a1[i]; } for( i=0;i<a2.length;i++){ a3[a1.length+i]=a2[i];} for( j=0;j<a3.length;j++){ System.out.print(a3[j]); } boolean salir=false; while(!salir){ String opxion =null;
System.out.println("Los números son "); for (int i1 =0 ;i1<9;i1++){System.out.print(a3[i1]);} System.out.println(" ¿Desea ordenarlos con bubblesort? S/N"); opxion = new BufferedReader(new InputStreamReader(System.in)).readLine(); if (opxion.equals("S"))salir=true; } int aux; int count = 0; for(int k=a3.length;k>0;k--){
for(int y=0;y<a3.length-1;y++){ if(a3[y]<a3[y+1]){ aux = a3[y+1]; a3[y+1]=a3[y]; a3[y]=aux; } System.out.print(a3[y]); count++; if (count==9){count=0; System.out.println();} } } } } public class bur {
public static void main(String[] args) throws IOException { pedir arreglo=new pedir(); int[] aray1={5,4,3,2,1}; int [] array2={9,8,7,6}; arreglo.arrays(aray1, array2); } }
|
|
|
En línea
|
|
|
|
1mpuls0
Desconectado
Mensajes: 1.186
|
Cuál código?
Saludos.
|
|
|
En línea
|
abc
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
metodo de ordenamiento burbuja en graficos en lenguaje c#
.NET (C#, VB.NET, ASP)
|
Ylen
|
4
|
14,325
|
8 Abril 2009, 07:30 am
por Ylen
|
|
|
Ordenamiento burbuja
Programación C/C++
|
jravelar
|
5
|
7,476
|
29 Abril 2010, 17:13 pm
por Tha_Traker
|
|
|
Como limitar un resultado en un ordenamiento de Burbuja
Programación C/C++
|
luis456
|
6
|
4,234
|
27 Diciembre 2012, 18:35 pm
por luis456
|
|
|
Cómo ordenar un arreglo bidimensional aplicando ordenamiento burbuja?
Programación C/C++
|
UmbraNoche
|
1
|
7,815
|
14 Febrero 2015, 17:36 pm
por engel lex
|
|
|
Ordenar un arreglo de dos dimensiones aplicando el ordenamiento burbuja
Programación C/C++
|
UmbraNoche
|
0
|
2,800
|
25 Octubre 2015, 03:31 am
por UmbraNoche
|
|