Stai applicando in maniera sbagliata il bubblesort, non devi continuare a confrontare l' elemento di indice i con quello di indice j.Semmai l' elemento di indice i con l' elemento di indice i+1, altrimenti confronti sempre lo stesso elemento:
Ti consiglio di prenderti l' algoritmo del bubblesort e di provare ad implementarlo per conto tuo.codice:char[] ordinato=k.toCharArray(); for(int i=0;i<k.length()-1;i++) { for(int j=0;j<k.length()-i-1;j++) { if(ordinato[j] > ordinato[j+1]) { char temp=ordinato[j]; ordinato[j]=ordinato[j+1]; ordinato[j+1]=temp; } } }