ケースとバウンドを区別することが重要です。
アルゴリズムを分析する場合、最良、平均、および最悪が一般的な関心事です。
上限(O、o)と下限(オメガ、オメガ)は、シータとともに、関数の一般的な境界です。
「アルゴリズムXの最悪の場合の時間計算量はO(n)」と言うとき、入力を最悪の場合の入力に制限するときのアルゴリズムXのパフォーマンスを表す関数は、上からある線形関数によって漸近的に制限されると言います。 。最悪の場合の入力の下限について話すことができます。または、平均的な、または最良の場合の動作の上限または下限。
ケース!=バインドされています。とは言うものの、「最悪の場合は上」と「最高の場合は下」はかなり賢明な種類のメトリックです...これらはアルゴリズムのパフォーマンスに絶対的な限界を提供します。他の指標について話せないという意味ではありません。
更新された質問に回答するために編集します。
質問では、Omega(lg n)が最悪の場合の動作の下限であることを示すように求められます。言い換えると、このアルゴリズムが入力のクラスに対して実行できるのと同じくらい多くの作業を実行する場合、実行する作業の量は、漸近的に、少なくとも(lg n)と同じ速さで増加します。したがって、手順は次のとおりです。(1)アルゴリズムの最悪のケースを特定します。(2)最悪の場合に属する入力のアルゴリズムの実行時間の下限を見つけます。
これが線形検索を検索する方法の図です。
線形検索の最悪のケースでは、ターゲットアイテムがリストにないため、リスト内のすべてのアイテムを調べてこれを判断する必要があります。したがって、このアルゴリズムの最悪の場合の複雑さの下限はO(n)です。
注意すべき重要な点:多くのアルゴリズムでは、ほとんどの場合の複雑さは、共通の関数セットによって上下から制限されます。シータが適用されることは非常に一般的です。したがって、いずれにしても、Omegaの場合とOの場合とで異なる答えが得られない場合があります。