週に 1 回、コンピュータ サイエンス入門のラボを行っています。次のラボの終わりに簡単なコンテストを開催したいと思っていました。次のようなコードのブロックを提供したいと思います。
public class EfficientCode{
public static void main(){
long startTime, endTime, executionTime;
startTime = System.currentTimeMillis();
yourEfficientMethod():
endTime = System.currentTimeMillis();
executionTime = endTime – startTime;
}
public static void doSomething(){
// you do this part.
}
}
彼らはdoSomethingメソッドを実装し、最速のコードを持つ人は一握りのボーナスマークを獲得します.
問題は、質問がやや単純である必要があることです。学生は、ループ、if/else、文字列、追加、配列などをよく理解しています。
質問が何であるかについての私の考えは次のとおりです。
- 1 から 1,000,000 までの完全数をすべて見つけてください。(完全数とは、数のすべての因数を合計するとその数になる数です。つまり、6 = 3 + 2 + 1)
- 1 から 1,000,000 までのすべての素数を見つける
メソッド間のパフォーマンスに測定可能な違いがあるためには、何かを何度も行う必要があると思います。