Estou com dúvida com o método bolha para String, com int dá certo:
class ordena{
void bolha(int [] numeros){
int i, j, temp;
int fim = numeros.length;
for(i=fim -1; i > 0 ; i--) {
System.out.println("Estado do vetor no inicio do passo i = " + i);
imprimeArray(numeros);
for(j=1; j <= i; j++) {
if(numeros[j-1] > numeros[j]) {
temp = numeros[j-1];
numeros[j-1] = numeros[j];
numeros[j] = temp;
}
}
System.out.println("Estado do vetor no fim passo i = " + i);
imprimeArray(numeros);
System.out.println("-----------------------------------------");
}
}
}
Mas como posso substituir por String [] nomes???
Cara em primeiro lugar utiliza a tag code para facilitar o entendimento.
depois da uma olhada nesse codigo aqui:
[code]public class BolhaNaString {
public static void main(String args[]){
String [] nomes = {"Orruda","Lulinha","Dilma Roussef"};
String aux = "";
int valor1=0, valor2=0;
int i,j;
for(i=3;i>0;i--){
for(j=1;j<3;j++){
valor1 = nomes[j].charAt(0);
valor2 = nomes[j-1].charAt(0);
if(valor2 > valor1){
aux = nomes[j-1];
nomes[j-1] = nomes[j];
nomes[j] = aux;
}
}
}
for(i=0;i<3;i++){
System.out.println(nomes[i]);
}
}
}
[/code]
Vê se resolve seu problema ai, se não resolver tenta dessa forma(recomendo):
[code]import java.util.Arrays;
public class Ordenacao{
public static void main(String …args){
String nomes[] = {“Orruda”,“Joao”,“Bastiao”};
Arrays.sort(nomes);
for(int i=0;i<3;i++){
System.out.println(nomes[i] + "\n");
}
}
}[/code]
flwssssss
Esse tópico foi aberto a pouco tempo atrás… duas vezes…
dá uma olhada:
http://www.guj.com.br/posts/list/91903.java
http://www.guj.com.br/posts/list/91892.java
Por isso é bom usar a busca do fórum antes de perguntar. 
Vocês são todos da mesma turma?
Talvez fosse uma boa conversar com os colegas também…
Então eu fiz algo parecido, mas tá dando erro de compilação nessa parte:
pos1 = listaDeClientes[i].charAt(0);
pos2 = listaDeClientes[j].charAt(0);
O método todo é esse:
void ordenaLista() {
Cliente aux;
int pos1 = 0;
int pos2 = 0;
for (int i = 0; i < listaDeClientes.length; i++) {
for (int j = i + 1; j < listaDeClientes.length; j++) {
pos1 = listaDeClientes[i].charAt(0);
pos2 = listaDeClientes[j].charAt(0);
if (pos1 > pos2) {
aux = listaDeClientes[j];
listaDeClientes[j] = listaDeClientes[i];
listaDeClientes[i] = aux;
}
}
}
}
Obs: a listaDeClientes já está apresentada no meu programa
Como já foi pedido, use a tag code… ou ninguém vai ler o seu código por aqui. Se você não sabe fazer isso, leia esse tópico:
http://www.guj.com.br/posts/list/50115.java
A classe Cliente tem o método charAt???
Não deveria ser listaDeClientes[i].getNome().charAt(0)?
Outra coisa, é melhor na classe Cliente implementar Comparable<Cliente> e depois usar o método Collections.sort ou Arrays.sort para fazer a ordenação automaticamente. Sem o processo da bolha, que é muito ineficiente.
Ou então, comparar os nomes do cliente usando o método compareTo, da classe String, que leva em consideração não só o primeiro caracter da String, como os outros também.
Tem exemplos disso no primeiro link que te passei ali em cima. E você pode ler mais sobre o assunto aqui:
http://www.guj.com.br/posts/list/45985.java#241201
Melhor ainda é fazer assim, para Strings:
[code]import java.util.Arrays;
public class Ordenacao{
public static void main(String …args){
String nomes[] = {“Arruda”,“João”,“Álbano”, “Bastião”, “Éster”, “Eduardo”, “bruno”};
Arrays.sort(nomes, Collator.getInstance());
for(int i=0;i<3;i++){
System.out.println(nomes[i] + "\n");
}
}
} [/code]
Compare a ordenação gerada pelo seu algoritmo (sem o Collator) e com esse aqui. Você vai ver que com o Collator a ordenação fica natural, como num dicionário, agrupando palavras acentuadas juntas, e desprezando o fato das letras serem maiúsculas e minúsculas ao odena-las. 
Valeu cara vivendo e aprendendo!!!
falws