-3

早い段階でパート 1 を投稿し、興味深い回答を得ました

一連の数値の最適化パート 1 を出力する

これは、プログラムに繰り返し一連の数字を画面に出力させる別の方法です。ここでの目標は、最も効率的/最速のアルゴリズムを作成することです

int series[] = [2,3,4,5,6,7,8,9,1]
int i = 9;

while(true)
{
    print(series[i])
    i = series[i] - 1;
} 

もちろん、実際に数字を出力することによって生じる余分なオーバーヘッドは無視します。それは問題の目的ではないからです。

無限ループにはブール条件文 (while true) が 1 つ必要です。どのような解決策を実行しても必要なので、それも無視できます。

このソリューションでは、11 個の int 変数にメモリを使用しますが、それ以外の場合は、反復ごとに 1 つの単純な計算と 1 つの変数割り当てのみを実行します。

これは、無限数級数問題を解決する最も時間効率の良い方法でしょうか?

4

1 に答える 1

2

それは最も効率的な方法ではないと思います。

配列のアドレス指定には乗算が含まれます。それは本質的に

destinationAddress = baseAddressOfArray + indexRequested * sizeof(elementOfArray)

最も効率的な方法は、1回の反復の文字列をキャッシュし、その文字列を何度も繰り返し吐き出すことだと思います。私は正確なC++構文に精通していません、それは次のようなものになるでしょう

string s = "123456789";
while(true) {
    print(s);
}
于 2011-05-03T01:20:18.480 に答える