简析大O表示法
4361 ワード
説明する
アルゴリズム解析を行う場合、文全体の実行回数T(n)は問題規模nに関する関数であり、さらにT(n)のnに対する変化状況を分析し、T(n)の数量レベルを決定する.アルゴリズムの時間複雑度はT(n)=O(f(n))と記す.問題の規模nの増加とともにアルゴリズム実行時間の成長率はf(n)の成長率と同じであり、アルゴリズムと呼ばれる漸近時間複雑度を時間複雑度と略称し、f(n)はnのある関数である.このように大文字でO()を使ってアルゴリズムの時間の複雑さを表現する表記を大O記法と呼びます.
二、導出方法は、運転時間における加算定数のすべてを定数1で置換する. は、修正後の運転回数関数において、最上位項目のみを保持する. 最高次項が存在し、かつ1でない場合、この項に乗算された定数が除去される. 三、実例
大O導出方法によると、第1ステップは3を1に変更することです.最高次数を保持するとき,最高次数はn 2であることが分かったので,このアルゴリズムの時間複雑さはO(n 2)であった.
アルゴリズム解析を行う場合、文全体の実行回数T(n)は問題規模nに関する関数であり、さらにT(n)のnに対する変化状況を分析し、T(n)の数量レベルを決定する.アルゴリズムの時間複雑度はT(n)=O(f(n))と記す.問題の規模nの増加とともにアルゴリズム実行時間の成長率はf(n)の成長率と同じであり、アルゴリズムと呼ばれる漸近時間複雑度を時間複雑度と略称し、f(n)はnのある関数である.このように大文字でO()を使ってアルゴリズムの時間の複雑さを表現する表記を大O記法と呼びます.
二、導出方法
public void function ( int count) {
for( int i = 0; i < count; i++ {
System.out.print(i);
}
}
public static void main(String[] args) {
int a = 1;
int b = 2
int n = 3;
function(n);
for ( int i = 0; i < count; i++ {
function(i);
}
for ( int i = 0; i < n; i++ ) {
for ( j = i; j < n; j++) {
System.out.print(j);
}
}
}
以上のコードの実行回数は、f(n)=3+n+n 2+n(n+1)/2=3/2*n 2+3/2 n+3の最終的な時間複雑度はO(n 2)です.大O導出方法によると、第1ステップは3を1に変更することです.最高次数を保持するとき,最高次数はn 2であることが分かったので,このアルゴリズムの時間複雑さはO(n 2)であった.