我不知道我的代碼的功能是否是正確的二進制搜索,但這不是我的問題,我想自己解決它。通用二進制搜索 - JAVA -
我的問題是在測試其功能,而我得到以下錯誤:
我真的不知道如何解決這個問題。請幫幫我!
我的代碼:
public class BinarySearchGeneric<T extends Comparable<T>>{
public int search(T[] array, T element){
int start = 0;
int end = array.length - 1;
int mid = (start + end)/2;
while(!element.equals(array[mid]) && end != 0) {
if (element.equals(array[mid])) {
return mid;
} else if (array[mid].compareTo(element) < 0) {
end = mid - 1;
mid = (start + end)/2;
} else if(array[mid].compareTo(element) > 0){
start = mid + 1;
mid = (start + end)/2;
}
}
return -1;
}
}
主要方法:
public class Main {
public static void main(String[] args) {
int[] a = {1,2,3,4,5,6,7,8,9,10};
BinarySearchGeneric binarySearchGeneric = new BinarySearchGeneric(a);
System.out.println("BinarySearch Generic: " + binarySearchGeneric.search(a, 8));
}
}
不是問題,但考慮搜索一個'List'而不是'T []'。 –
你不能使用基本類型的泛型,使用'Integer []'而不是'int []' –
另外:不要使用原始類型:'BinarySearchGeneric'。 –