我正在对String进行二进制搜索并显示输出错误。我不知道我错过了什么,我需要一些建议。
这是我的代码:
public static final int Not_Found = -1;
public static int BS( String[][] record, String x )
{
int low = 0;
int high = record.length - 1;
int mid;
while( low <= high )
{
mid = ( low + high ) / 2;
if( record[ mid ].compareTo( x ) < 0 )
low = mid + 1;
else if( record[ mid ].compareTo( x ) > 0 )
high = mid - 1;
else
return mid;
}
return Not_Found;
}
我错过了什么?或者我必须用其他方式找到它?
错误:
错误:找不到符号 if(记录[mid] .compareTo(x)&lt; 0) ^ symbol:方法compareTo(String)
错误:找不到符号 否则if(记录[mid] .compareTo(x)&gt; 0) ^ symbol:方法compareTo(String)
答案 0 :(得分:1)
好record
是一个2D数组,因此record[j]
将给出一个数组而不是一个字符串。您是否可能意味着使用1D阵列?
答案 1 :(得分:1)
您正在使用“String [] []”表示2D记录。因此,record [j]给出对应的第j列字符串数组。哪个不能与字符串比较。因此,如果是1d记录,请使用“String [] record”。