大学生のガラと申します。情報工学科に在籍しています。
C言語は大学2年生までに習う初級程度は大体理解できていると思いますが、あやふやな点もあります。
提出期限が本日の課題に含まれているものであるため、困っています。
質問は大学の課題のアルゴリズムとデータ構造(ソート等)に関する問題についてです。
計算量を示すオーダーについて理解が乏しく、どのようなことを求められているのかもわかりません。
以下のような問題です。
大きさnの相異なる整数要素からなるソート済みの配列a,a[1] < a[2] < ... <a[n]が与えられている。
入力として与えられている整数lに対し、a = lとなるiが存在すればそのようなiを返し、どのi(1<=i<=n)に対してもa≠lなら0を返すようなO(logn)ステップで動作するアルゴリズムを構成せよ。C言語などに基づく擬似コードでよい。
この問題に対して、以下のようなアルゴリズムでは題意を満たさないように思えるのですが、どうすればよいのでしょうか。
for (i = 1, i <= n, i++) {
if (a == l)
return i;
}
return 0;
ご教授願います。
