このメソッドを解析する際に問題があります。 Imは大きなああ複雑さを把握しようとしています。 もし私が正しいのであれば、それはO(n^2)なので、アルゴリズムの支配的なジョイントである2つのforループです。しかし、私はそれを証明する方法を把握していないようです。このメソッドを分析する
これまでに得たものがあります。
1 + n *((n-1)+1)/ 2 + n。しかし、私はこれを試すとき、それは正しいことができない、できますか?
テキストはノルウェー語で、コードを理解することに問題がある場合は、ただ叫ぶだけです。
public void skrivUtStat(){
LinearNode<CD> temp = start;
int[] amt = new int[CD.GenreAmt()];
String[] genre = CD.sendGenre();
if(amount != 0){
for(int i=0; i<amount; i++){
for(int j=0; j<CD.genreAmount(); j++){
if(temp.getElement().getGenreNr() == j){
ant[j] += 1;
}
} // End inner for-loop
temp = temp.GetNext(); // O(1)
}// End outer for-loop
for(int a=0; a<CD.GenreAmt(); a++){
System.out.println(Genre[a] + ":");
System.out.println(ant[a]);
}
}
}
英語に今すぐ編集: は(P英語でコーディングする必要がありますが、私たち教師がノルウェー語ですべての材料を与えているので、彼らは戻っノルウェーしたがって、英語とノルウェーのテキストでそれをしたいです。)。
「antall」はどこに定義されていますか?そして、もし 'CD.sjangerAnt()'と違っていれば 'O(n^2)'ではなく 'O(m * n)'になります。 –
CD.sjangerAntはメソッドであるため、おそらく一定ではありません。このメソッドは、Cd.sjangerAntに応じて、O(n)からO(無限)までの任意の場所にすることができます。 – emory
ああ、そうです。その方法はO(m * n)である。 (感謝!)メソッドCD.sjangerAnt()は、O(1)を使用した単純な戻りメソッドです。しかし、私の主な問題はそれを数学的に証明する方法です。 – Destidom