次の記述中の に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は 1 から始まる。
関数 search は,引数 data で指定された配列に,引数 target で指定された値が含まれていればその要素番号を返し,含まれていなければ -1 を返す。data は昇順に整列されており,値に重複はない。
関数 search には不具合がある。例えば,data の 場合は,無限ループになる。
〔プログラム〕
◯整数型: search(整数型の配列: data, 整数型: target)
整数型: low, high, middle
low ← 1
high ← dataの要素数
while (low ≦ high)
middle ← (low + high) ÷ 2 の商
if (data[middle] < target)
low ← middle
elseif (data[middle] > target)
high ← middle
else
return middle
endif
endwhile
return -1
解答群
- 要素数が 1 で,target がその要素の値と等しい
- 要素数が 2 で,target が data の先頭要素の値と等しい
- 要素数が 2 で,target が data の末尾要素の値と等しい
- 要素に-1 が含まれている
解答
ウ
解説
作成中