public class GenericSort<G extends Comparable> {
     private G[] integerarray;
     public GenericSort(G[] inputarray){
      this.integerarray = inputarray;
      //check empty array
      if (integerarray ==null || integerarray.length==0){return;}
      quickSort(0,integerarray.length-1);
     }

     public void quickSort(int low, int high){
      int i = low;
      int j = high;
      //set Pivot
      G pivot = integerarray[low + (high-low)/2];
      while(i<=j){
       //check left
       while(integerarray[i]<pivot){i++;}
       //check right
       while(pivot<integerarray[j]){j--;}
       //swap
        if(i<=j){
         G temp = integerarray[i];
         integerarray[i] = integerarray[j];
         integerarray[j] = temp;
         i++;
         j--;
        }
      }
      //recursion
      if(low<j){quickSort(low,j);}
      if(i<high){quickSort(i,high);}
     }
}


这行:

while(integerarray[i]<pivot) {
    i++;
} &

while(integerarray[i]<pivot){i++;}


正在给出错误,因为未知类型之间不允许使用comarision。所以我从可比性扩展了G。仍然不起作用。怎么解决呢?

最佳答案

<>仅适用于原语。如果您的类实现了Comparable,请使用其compareTo方法并将结果与​​0进行比较


compareTo

10-07 16:53