我试图让这个合并排序方法完成但由于某种原因我显示错误&#34;运算符&lt; =未定义参数类型T,T&#34; < / p>
表示if语句
if(a[beginHalf1] <= a[beginHalf2])
{
tempArray[index] = a[beginHalf1];
beginHalf1++;
}
这是完整的代码
public static <T extends Comparable<? super T>>
void merge(T[] a, T[] tempArray, int first, int mid, int last){
int beginHalf1 = first;
int endHalf1 = mid;
int beginHalf2 = mid +1;
int endHalf2 = last;
int index = 0;
while((beginHalf1 <= endHalf1) && (beginHalf2 <= endHalf2) )
{
if(a[beginHalf1] <= a[beginHalf2]){
tempArray[index] = a[beginHalf1];
beginHalf1++;
}
else
{
tempArray[index]=a[beginHalf2];
beginHalf2++;
}
index++;
}
} // end merge
答案 0 :(得分:1)
运算符&gt; =&lt;适用于原始类型。您应该使用compareTo for T(如果它是可比的)。
if(a[beginHalf1].compareTo(a[beginHalf2]) <= 0)