elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Ordenamiento de array mediante burbuja
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ordenamiento de array mediante burbuja  (Leído 3,568 veces)
luchi

Desconectado Desconectado

Mensajes: 71


Ver Perfil
Ordenamiento de array mediante burbuja
« en: 19 Agosto 2013, 17:48 pm »

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:

Código:
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 Desconectado

Mensajes: 1.186


Ver Perfil
Re: Ordenamiento de array mediante burbuja
« Respuesta #1 en: 19 Agosto 2013, 18:40 pm »

Este es el método de la burbuja.

Lo encontré en mi repertorio  ;D

Código
  1. public static void ordenar( int arreglo2[] )
  2.    {
  3.     int almacen;
  4.  
  5.        for( int pasada = 1; pasada < arreglo2.length; pasada++ )
  6.     {
  7.     for( int elemento = 0; elemento < arreglo2.length - 1; elemento++ )
  8.     {
  9.                    if ( arreglo2[ elemento ] > arreglo2[ elemento +1 ] )
  10.                    {
  11.                        almacen = arreglo2[ elemento ];
  12.                        arreglo2[ elemento ] = arreglo2[ elemento + 1 ];
  13.                        arreglo2[ elemento + 1 ] = almacen;
  14.                    }
  15.  
  16.                }
  17.        }
  18.  
  19.        System.out.println( "\n\nElementos del arreglo ordenados\n" );
  20.   for(int indice = 0; indice < arreglo2.length; indice++  )
  21.        System.out.print( arreglo2[indice] + "  " );
  22.  
  23.   }
  24.  
  25.  

Espero te sirva.

Saludos.


En línea

abc
luchi

Desconectado Desconectado

Mensajes: 71


Ver Perfil
Re: Ordenamiento de array mediante burbuja
« Respuesta #2 en: 20 Agosto 2013, 22:37 pm »

Muchas gracias  :D, 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 Desconectado

Mensajes: 1.186


Ver Perfil
Re: Ordenamiento de array mediante burbuja
« Respuesta #3 en: 20 Agosto 2013, 23:02 pm »

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 Desconectado

Mensajes: 29


Ver Perfil
Re: Ordenamiento de array mediante burbuja
« Respuesta #4 en: 22 Agosto 2013, 07:21 am »

Bueno mejoré el código que tenías , y aquí va funciona casi perfect,
debes cambiar d versión de algoritmo porque estaba mal
Código:
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 Desconectado

Mensajes: 1.186


Ver Perfil
Re: Ordenamiento de array mediante burbuja
« Respuesta #5 en: 22 Agosto 2013, 07:34 am »

Cuál código?

Saludos.
En línea

abc
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines