私は、与えられた数とソートされた配列に対してバイナリ検索アルゴリズムを実行するのに必要な比較回数を決定するプログラムを書いています。私が理解していないのは、比較の対象となるものです。バイナリ検索の比較とは何ですか?
// returns the number of comparisons it takes to find key in sorted list, array
public static int binarySearch(int key, int[] array) {
int left = 0;
int mid;
int right = array.length - 1;
int i = 0;
while (true) {
if (left > right) {
mid = -1;
break;
}
else {
mid = (left + right)/2;
if (key < array[mid]) {
i++;
right = mid - 1;
}
else if (key > array[mid]) {
i++;
left = mid + 1;
}
else {
break; // success
}
}
}
return i;
}
この関数は、配列内のキーを見つける際に行われた比較の総数と思われるiを返します。しかし、比較を定義するものは何ですか?条件付きがあるときはいつでもですか?
このコンセプトを理解しようとしてくれてありがとうございました。
キー(検索要素)と配列要素を比較すると、比較として計算されます。 – Sridhar