我正在尝试为我的程序运行JUnit测试,但是我收到类似
的错误消息*incompatible types
required: int[];
found: int *
以下是显示错误的代码
myQSArray = QS.quickSort(sortedArray2,0, sortedArray2.length - 1);
这是我对 quickSort方法
的号召public static int quickSort( int A[], int p, int r){
int q;
if (p<r)
{
q = partition(A,p,r);
quickSort(A, p, q-1);
quickSort(A,q+1,r);
}
return QS1.quickSort(A, p, r);
}
请帮助,提前致谢
答案 0 :(得分:1)
我发现您的代码存在一些问题:
声明该方法返回int
值,但您尝试将此int
分配给int[]
。这会导致实际的编译时错误。将方法签名更改为
public static int[] quickSort( int A[], int p, int r)
快速修复。
然后,您的递归函数quicksort
错过了退出条件。它将无限期地运行(或者至少在虚拟机放弃并在几毫秒后抛出StackOverflowException
之前)。您需要添加要检查的条件,如果数组已排序并返回已排序的数组(请参阅“new”方法签名!)。
答案 1 :(得分:0)
当编译器发现一个数据类型不兼容的变量和表达式对它们执行操作时,发生了Java错误不兼容的类型。这就是其中之一。
更好一旦你将“sortedArray2”声明为int []数组类型而不是