-3
char[] charArray = new char[] {'h','e','l','l','o','a'};
System.out.println(Arrays.binarySearch(charArray,'a'));
なぜ私は結果が5ではなく-1になるのですか?Arrays.binarySearch最後の要素が見つからない
char[] charArray = new char[] {'h','e','l','l','o','a'};
System.out.println(Arrays.binarySearch(charArray,'a'));
なぜ私は結果が5ではなく-1になるのですか?Arrays.binarySearch最後の要素が見つからない
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'));
バイナリ検索は、ソートされた配列でのみ動作します。https://en.wikipedia.org/wiki/Binary_search_algorithm –