Boa Noite galera, estou com uma dificuldade em terminar um exercício.
O que ele tem que fazer é:
Receber uma seqüencia desse modo, 10-2-3-52-3-5, o usuário informa o número que desejar separado por hífens, e tem que pegar esses números e transformas em um vetor, até aqui eu consegui, e depois tenho que pegar esse números e deixar em ordem decrescente e crescente.
Aqui está o código:
[code]import javax.swing.JOptionPane;
public class Hifens {
public static void main(String[] args){
String ex = “”,exi = “”, exint = “”;
int contador = 0,aux = 0;
ex = String.valueOf(JOptionPane.showInputDialog("Digite uma sêquencia de números separados por traço.\nExemplo: 10-20-2-3-4"));
String[] b = ex.split("-");
int[] ax = new int [b.length];
int[] bx = new int [b.length+1];
contador = ax.length;
for (int a = 0; a<b.length; a++){
exi += (b[a]+" ");
ax[a] = Integer.parseInt(b[a]);
}
for (int one=0; one><=contador; one++){
for (int two=one+1; two<=contador+1; two++){
if(ax[one]<ax[two]){
aux = ax[one];
bx[two] = ax[one];
} }
}
JOptionPane.showMessageDialog(null,exi+"\n"+exint);
}
}[/code]
Se alguém me ajuda ficarei muito grato, lembrando que não é válido usar o Array.sort.
>
A lógica de ordem crescente é mais ou menos assim…
ele vai percorrer o vetor diversas vezes, comparando sempre o primeiro com o segundo em diante, depois o segundo com o terceiro em diante, e por aí vai…
se o numero for menor, ele sempre vai trocar.
o que difere da ordem crescente pra descrescente é o sinal no if.
//vetor a[] com os dados
//variável de controle x
for(i = 0; i < a.length(); i++) {
for(j = i; j < a.length(); j++) {
if(a[i] > a[j]) {
x = a[j];
a[j] = a[i];
a[i] = x;
}
}
}