我一直在尝试按字母顺序对字符串中的字符进行排序。 它适用于简短的单词,但是当我尝试输入单词时,例如:abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz。它根本没有排序。 有人可以帮我改进我的代码吗? 这是我的代码:
public class quicky{
public static void partition(char[] a,int low, int high){
int i = low;
int j = high;
char tmp;
int pivot = i+(j-i)/2;
while (i <= j) {
while(a[i] < a[pivot]){
i++;
}
while(a[j] > a[pivot]){
j--;
}
if(i <= j) {
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
i++;
j--;
}
}
if(low < j){
partition(a, low, j);
}
if(i < high){
partition(a, i,high);
}
}
public Character[] toCharArray( String s )
{
int len = s.length();
Character[] array = new Character[len];
for (int i = 0; i < len ; i++) {
array[i] = new Character(s.charAt(i));
}
return array;
}
public static void main(String[] args)
{
String input = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz";
String output = quicksort(input);
System.out.print(output);
}
public static String quicksort(String y)
{
int length = y.length();
int i = 0;
int j = length-1;
char[] a = y.toCharArray();
partition(a,i,j);
String x=new String(a);
return x;
}
}