回答:
時間を考慮するだけのリソースではないため、計算の複雑さはより一般的な用語です。次に最も明白なのは、アルゴリズムが使用する空間です。したがって、計算の複雑さの一部として、空間の複雑さについて話すことができます。確かに、私たちは、あなたがあなたが使用することを気にするあらゆる尺度に対してこれを行うことができます。もちろん、いくつかの尺度は他のものよりも有用です。
したがって、最悪の場合にアルゴリズムがとるステップの数を数えると、解決する問題の時間の複雑さの限界が得られ、使用するメモリ/テープセルの数を数えると、スペースの複雑さの限界などが得られます。
また、厳密にしたい場合、複雑さはアルゴリズムではなく問題を指しているため、問題には複雑さの限界があり、アルゴリズムにはリソースの限界がある(実行時間、スペースの使用...)それは単なる定義上の形式の問題であり、複雑性理論は問題を扱います。はい、アルゴリズムは問題と複雑さを分析するための重要なツールであり、アルゴリズムは密接に結びついていますが、正式にはMerge-Sort(アルゴリズム)がにあるとは言いません。それはある問題です。Merge-Sortは特定のリソースを使用したとえば、ステップ)。アルゴリズムのリソースの限界と正確さは、問題の複雑さ(上限)を意味しますが、それらは異なるものです。S o r t i n g P O (n log n )S o r t i n g T C 0 A C 0また、ある下-complete -reductionsは、結合したこの複雑さは、実際の問題のために述べることができる(ただし、アルゴリズムの意味を持っています)。
循環的複雑度は、多くの場合、計算の複雑度の尺度として使用されます。https://stackoverflow.com/questions/9097987/calculation-of-cyclomatic-complexityで役立つ例が提供されています。
アルゴリズムには多くの異なる(ネストされている可能性のある)パスがあり、高度な循環的複雑度を与えますが、ループはなく、時間的複雑度は低くなります。単一ループのプログラムでは、循環的複雑度は低くなりますが、時間的複雑度は高くなります。
周期的な複雑さは、コードに必要なメンテナンスの尺度としてよく使用されます。詳細については、http://docs.sonarqube.org/display/SONAR/Bad+Distribution+of+Complexityで説明しています。これは、コードの実行時測定である時間の複雑さとは異なり、システムの有効性に対するユーザーの認識を評価するために使用できます。