quicksort不会用很多字母对字符串进行排序

时间:2014-10-02 03:29:36

标签: java string sorting char quicksort

我一直在尝试按字母顺序对字符串中的字符进行排序。 它适用于简短的单词,但是当我尝试输入单词时,例如: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;

    }
}

0 个答案:

没有答案