1

これは、効率の推定の背後にある原理についての質問です。私のプロジェクトの 1 つで、この状況に遭遇しました。関数は 2 つの正の整数を取得し、2 つのうち最小のものを返します。私が通常使用している、ステップ数で計算するこの方法が、効率を推定するためのある程度正確な方法であるかどうか、および他の方法があるかどうか、またはそれらの実行速度を常に単純に比較する必要があるかどうかを知りたいです。

Function(int a, int b)
{
    int lowest = a - b;                   //3 steps, allocating, assigning and calculating
    lowest = lowest * lowest / lowest;    //3 steps, 2 in calculating, 1 in assigning
    //6 steps total

    return lowest;
}

Function(int a, int b)
{
    int lowest;        //1 step in allocating
    if(a > b){         // 2 steps, 1 in comparing, 1 in picking the outcome
        lowest = b;        // 1 step in assigning
                           // Total 4 steps
    }else{
        lowest = a;        // 1 step in assigning
                           // Total 4 steps
    }
    return lowest;
}

この場合、手順が少ないと思われるため、関数 2 を選択します。

4

2 に答える 2

0

このサイズの関数の場合、とにかく関数が非常に高速に実行されるため、ほとんど問題になりません。

ただし、大規模な計算の場合、この方法は間違いなく適切です。実際、このような「ステップ」のカウントは、 「アルゴリズムの分析」として知られるコンピューター サイエンスのサブフィールドの基礎となっています。

実際には、これが実際に問題になるには、さらに多くの手順が必要になります。手順が異常に高価でない限り、少なくとも数十万です。

于 2016-10-30T11:17:22.320 に答える