#include <iostream> using namespace std; // バイナリ検索メソッド、配列の要素を検索し、位置のインデックスを返します // 順序付き配列でなければなりません int select_arr(int arr []、int len 、int arr_value) { while(1 ) { int left = 0 ; // 配列の左添え字 int right = len- 1 ; // 配列の右添え字 while(left <= right) { int mid =( left + right)/ 2 ; // 中央のインデックスを定義 int mid_value = arr [mid]; // 中間値の参照値を定義する if(mid_value == arr_value)// 参照値が 検索する 値と正確に等しい場合、自動的に目的の場所に戻る { return mid; } // if if参照値が検索対象の値よりも大きく、値が左半分にあることを示し、新しい検索範囲は中央値-1桁、つまり中央値1である else if(mid_value> arr_value) { right = mid- 1 ; } // 参照値の場合検索する値よりも小さく、値が右半分にあることを示します。新しい検索範囲は、中央の数値+1桁、つまりmid + 1です。 それ以外の 場合(mid_value < arr_value) { left = mid + 1; } } 戻り値 - 1 ; } } int型のmain() { // バイナリ探索要素用いて、intの配列を定義する int型 ARR [ 10 ] = { 1、3、5、7、9、10、16、46であるが、88、91である}; INT weizhi = select_arr(ARR、10、16 ); 戻り 0 ; }