http://en.wikipedia.org/wiki/Binary_search_algorithm#Average_performance
BinarySearch(int A[], int value, int low, int high)
{
int mid;
if (high < low)
return -1;
mid = (low + high) / 2;
if (A[mid] > value)
return BinarySearch(A, value, low, mid-1);
else if (A[mid] < value)
return BinarySearch(A, value, mid+1, high);
else
return mid;
}
検索しようとしている整数が常に配列内にある場合、バイナリ検索アルゴリズムの平均パフォーマンスを計算できるプログラムを作成するのを手伝ってくれる人はいますか?
編集:実際にプログラムを実行して呼び出し回数を数えることでこれを実行できることはわかっていますが、ここでやろうとしていることは、関数を呼び出さずに実行することです。
edit2: KennyTM: それは時間の複雑さです。呼び出しの平均数を計算しようとしています。たとえば、A[2] で整数を検索する平均呼び出し回数は、1.67 (5/3) になります。