私は週に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のメソッドを実装し、最速のコードを持つ人はボーナスマークの一握りを取得します。
問題は多少単純である必要があるという問題です。学生はを十分に把握してい:、ループの場合/他、ストリングス、追加、配列など
ここは、質問は何ができるかについての私の考えです:
- が1の間のすべての完全数を見つけます1,000,000人。
- 私が順番に考える1および1,000,000
間のすべての素数を見つける:(。+ 1 + 2 = 3 6完全数はすべての数の要因が数まで追加すなわち数です)メソッド間でパフォーマンスに測定可能な差があるためには、何度も何度もやらなければなりません。
この質問は、http://programmers.stackexchange.comの方が適切でしょうか? – user85461
私はこの権利を読んでいますか?あなたはコースを教えているし、 "あなたは何か何度も何かをやらなければならない方法の間に、パフォーマンスの測定可能な違いがあると思う"と尋ねています。 –
受け入れ可能なものについて厳格なガイドラインとパラメーターを指定するように注意する必要があります。私は完璧な素数のリストをハードコードして、それを印刷させます。コードはそれを打ち負かしません。間違いなく、私はボーナスポイントを獲得すべきではありません(私はクラスでは違うと主張したいと思いますが、いずれにせよ、誰かが試してみる前に*対処する必要があるものです)。 –