2017-10-28 4 views
-3
char[] charArray = new char[] {'h','e','l','l','o','a'}; 
System.out.println(Arrays.binarySearch(charArray,'a')); 

なぜ私は結果が5ではなく-1になるのですか?Arrays.binarySearch最後の要素が見つからない

+2

バイナリ検索は、ソートされた配列でのみ動作します。https://en.wikipedia.org/wiki/Binary_search_algorithm –

答えて

2

Arrays#binarySearch(char[], char)は、この呼び出しを行う前に(sort(char[])法により)(部分的に)アレイがソートされなければならないと言います。ソートされていない場合、結果は未定義です。最初にcharArrayをソートします。同様に、

char[] charArray = new char[] { 'h', 'e', 'l', 'l', 'o', 'a' }; 
Arrays.sort(charArray); 
System.out.println(Arrays.binarySearch(charArray, 'a')); 
関連する問題