-1
我已經編寫了一個程序,用於在排序的字符串數組中搜索字符串。我的程序工作正常,除了數組中有空字符串的時候。以下是代碼:在java中排序的字符串數組中搜索給定的字符串
public class StringSearch {
public static int binarySearchString(String[] s, String search)
{
int low = 0;
int high = s.length-1;
int mid;
while(low<=high)
{ mid = (high+low)/2;
if(search.compareTo(s[mid])<0)
high = mid-1;
else if(search.compareTo(s[mid])>0)
low = mid+1;
else
return mid;
}
return -1;
}
public static void main(String[] args)
{
String[] str = {"abc", "", "def", "ijk", "mnop", "xyz"};
String toSearch = new String("ijk");
int result = binarySearchString(str, toSearch);
if(result == -1)
System.out.println("String not found!!");
else
System.out.println("String found at array index:" + result);
}
}
我在哪裏犯錯?
二進制搜索將無法處理未排序的數組。 – MikeCAT
請解釋_「除了空串以外的時間_」。怎麼了?如果數組已排序,空字符串在哪裏?你是如何對陣列進行排序的? –
Techincally沒有排序,如果有一個空白的字符串在那裏隨機... – 3kings