メモ:バイナリサーチ

/*
引数	int ary : 探索する配列(ソート済み)
		int key : 探索する値
戻り値	int 1 : 見つかった
		int 0 : 見つからなかった
*/
int binarySearch( const int ary[], int key ){
	int low = 0;
	int high = ARRAY_SIZE-1;	// ARRAY_SIZEは配列の要素数
	int mid;

	while( low <= high ){
		mid = (low+high)/2;
		if( ary[mid] == key ){
			return 1;
		} else if( ary[mid] < key ){
			low = mid+1;
		} else {
			high = mid-1;
		}
	}
	return 0;
}

ARRAY_SIZE定数を、sizeof(ary)/sizeof(ary[0])に変えたかった。わざわざARRAY_SIZE定数を用意するのが面倒くさいから。
でも、不具合。
sizeof()で「sizeof(ary)/sizeof(ary[0])」を調べると、要素数1と返される。

そうだ、この引数は先頭のアドレスを受け取っているだけだった。
引数をもうひとつ増やすか。