2
public void Find() {
String Value = "";
System.out.println("Search Name");
Value = Input.next();
int Begin, End, Pivot;
Begin = 0;
End = CurrentCount;
while(End - Begin > 1) {
Pivot = Begin + (End - Begin)/2;
if(Value.equals(ArrayList[Pivot].LastNamePlayer))
System.out.println(ArrayList[Pivot].NamePerson);
else if(Value.compareTo(ArrayList[Pivot].LastNamePlayer) < 0)
End = Pivot;
else
Begin = Pivot;
}
if (Value.equals(ArrayList[Begin].LastNamePlayer))
System.out.println(ArrayList[Begin].NamePerson);
else if(Value.equals(ArrayList[End].LastNamePlayer))
System.out.println(ArrayList[End].NamePerson);
else
System.out.println("Not Found!");
}
これは、配列に適切なレコードがあるようです。問題は、それが結果を印刷する無限ループに入ってしまうことです。結果を表示する最良の方法は何ですか?バイナリ検索 - 結果を表示
休憩を追加すると、それ以降の場合はelseが機能しません。 – chief
角かっこは使用しましたか? – MByD