バイナリ探索アルゴリズムは、配列が昇順にソートされていることに依存する。バイナリサーチを行う場合、アルゴリズムにはサーチ区間があり、区間中央の要素がサーチされる値と等しいかどうかをチェックする。等しければ、バイナリサーチは完了する。もし値が等しくなければ、探索区間を半分に分ける。探索区間を分割する側は、探索する値が先ほどチェックした中央の値より小さいか大きいかによって決まる。配列を水平に描き、左側に最小の要素、右側に最大の要素を置く。もし探している値が真ん中の値より大きければ、検索区間を配列の右側に分割し、検索区間の一番左の要素を真ん中の要素のすぐ右の要素とします。もし探している値が真ん中の値より小さければ、検索区間を配列の左側に分割し、検索区間の一番右の要素は真ん中の値のすぐ左にある要素とする。このプロセスは、値が見つかるか、配列にない場合は見つからないまで繰り返される。入力配列が昇順にソートされていなければならないのはこのためです。質問の答えになっただろうか。
The binary search algorithm relies on the array being sorted in ascending order. When doing a binary search, the algorithm has a search interval in which checks if the element in the middle in the middle of the interval are equal to the value being searched for. If it is, the binary search is complete. If the value is not equal, then we divide the search interval in half. The side in which the search interval is split depends on whether the value we're searching for is less than or greater than the middle value we just checked. Picture the array horizontally, with the smallest elements on the left and the largest elements on the right. If the value we're searching for is greater than the middle value, we split the search interval into the right side of the array, with the left-most element in the search interval being the one just to the right of the middle element. If the value we're searching for is smaller than the middle value, then we split the search interval into the left side of the array, with the right-most element in the search interval being the one just to the left of the middle value. This process gets repeated until the value is found or, if it isn't in the array, isn't found. That is why the input array must be sorted in ascending order, because the algorithm relies on it. I hope that answered your question.