Mostrar lista no bubble sort?

Galera sou novo no forum e na tecnologia Java, programo em C e estou com uma duvida na nova plataforma!

Fiz um BubbleSort mas na hora de mandar imprimir na tela a lista ordenada to meio perdido sobre como fazer tal chamada.

Vejam o código

import javax.swing.JOptionPane;
 
 public class Bubble {
     
 ­public static void main(String [] args) {
         
 int i, cont, aux;
 int num[] = new int[30];
 String s = JOptionPane.showInputDialog("Quantidade inicial de numeros a serem" +
                 "ordenados\n Obs: Max 30");
 cont = Integer.parseInt(s);
 for(i = 0;i < cont;i++){
 String a = JOptionPane.showInputDialog("Digite os numeros");
 num[i] = Integer.parseInt(a);
             while(num[i]>num[i+1]){
                 aux = num[i];
                 num[i] = num[i+1];
                 num[i+1] = aux;
             }
         }
         
         JOptionPane.showMessageDialog(null,
                 "Numeros ordenados em ordem crescente \n" + ????);
         
     }
     
 }

Que variavel eu devo mandar imprimir no showMessageDialog?? Porque se imprimir num[i] ele imprimir o ultimo numero digitado e se imprimir o num[i+1] ele imprime “0” pois pega o fim do vetor que é null, e se mando imprimir num imprime lixo da memoria. Engraçado é que construi a função na raça e no gran finale me perdi =p

Recebi uma ajuda de um colega e mudei algumas coisas!

Vejam como ficou o trecho final do código


while(num[i] > num[i+1]){
                 aux = num[i];
                 num[i] = num[i+1];
                 num[i+1] = aux;
             }        
         }
         for(i = 0; i<num.length; i++){
             JOptionPane.showMessageDialog(null,
                     "Numeros ordenados em ordem crescente \n"+ num[i] + " ");
         }
     }
 }
 

Eu entendi o principio da estrutura que foi citada acima, me corrijam se estiver errado!

// depois de ordenado o array, “i” percorre o vetor ate achar o seu fim e vai imprimindo os numeros na posição corrente num[i], portanto realmente era pra imprimir os numeros ordenados um por um!

Voltanto…

O problema é que ta imprimindo uma sequencia de “0” e depois o ultimo numero que foi digitado.

Digamos que queiras ordenar 5 numeros, ele vai imprimir sequencialmente 4 zeros e o ultimo numero que foi digitado!

Se alguem puder ajudar… Fico grato!!!

Ola… Fiz algumas modificações no seu código. Creio que vc deva primeiro ler todos os números de entrada do usuário e por isso separei essa parte do código. Também alterei o código do BubbleSort. Até mais.

public class Bubble {

	public static void main(String [] args) {

		int i, j, cont, aux;
		int num[] = new int[30];
		String s = JOptionPane.showInputDialog("Quantidade inicial de numeros a serem" +
		"ordenados\n Obs: Max 30");
		cont = Integer.parseInt(s);
		
		for(i = 0;i < cont;i++){
			String a = JOptionPane.showInputDialog("Digite os numeros");
			num[i] = Integer.parseInt(a);    
		}
		
		for (i = cont -1; i > 0; i--){
			for (j = 0; j < i; j++){
				if (num[j] > num[j+1]){
					aux = num[j];
					num[j] = num[j+1];
					num[j+1] = aux;
				}
			}
		}
		
		for(i = 0; i < cont; i++){
			JOptionPane.showMessageDialog(null,
					"Numeros ordenados em ordem crescente \n"+ num[i] + " ");
		}
	}
} 

Valeu a ajuda!!!

Fiz as correções e ta funcionado agora!!!

:grin:

Não abusando, gostaria de saber como faço para imprimir todos os numeros ordenados de uma unica vez! Ja pensou se ordenar uma lista de 100 numeros fica inviavel apertar “enter” ate acabar a ordenação para ver os resultados!!

Se alguem tiver uma sugestão, é d egrande ajuda!!!