問題のアルゴリズムの時間の複雑さ

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/oqqWang1234567/article/details/100521000

ランダウの記号は何ですか?

https://baike.baidu.com/item/%E5%A4%A7O%E7%AC%A6%E5%8F%B7/656100?fr=aladdin

ランダウの記号(ランダウの記号)関数の漸近挙動を記述するために使用される数学記号です。むしろ、それは機能を説明するために、他の(一般的にシンプルな)関数である大きさの漸近的に結合しました。数学では、一般的に切り捨て特徴づけるために使用され、無限級数、漸近シリーズの特に残存期間を、コンピュータサイエンスでは、アルゴリズムの複雑さの解析に非常に有用です。

================================================== ==============================================

引用接続:

https://blog.csdn.net/zhaofen_7/article/details/81035802

はじめに:
キッチンのようなデータ構造とアルゴリズム、データ構造、およびシェフのレシピ、唯一の良い食材(データ)、清潔で整然としたキッチンなどを念頭に置いアルゴリズム((食品カトラリー、様々な調理器具があり、そこにあります)データ編成)、簡潔なレシピ(アルゴリズム)、シェフ)は、プログラムのおいしい(適切かつ効率的な運転を行うことができる
アルゴリズムの品質を測定するために二つの方法であることができる
1。その後統計:無駄
2。前の見積もり:複雑さと空間の複雑さの推定時間見積もり
時間の複雑さは、最も一般的にタイムコードの複雑さを推定するために、コードの実行の推定数によって、同じスケール入力で、使用されているの!

時間の複雑さを算出することにより-ビッグO発注方法
1は、操作のすべての時間定数の定数加算で置換されている
修正後の数字の操作機能2.、唯一最高次項保持
3.最高次の項が存在し、1でない場合は、次いで取り出し、定数項が乗算され、
大きい順Oを得ること
 

n++;                                                  //1.执行次数为1
function(n);                                          //2.执行次数为n
int i,j;
for(i=0;i<n;i++)                                      //3.执行次数为n²
{
    function(i);
}
for(i=0;i<n;i++)//从0~n-1共n次                      
{
    for(j=i;j<n;j++)//对应外层循环,从0~n-1,每次循环的执行次数分别为n,n-1,n-2,n-3,,,1
    {
        /*时间复杂度为O(1)的程序步骤序列*/
    }
}
//循环次数为1+。。。。。+(n-3)+(n-2)+(n-1)+n=n(1+n)/2
//4.所以执行次数为n(1+n)/2

ステップ:
実行回数断片1.分析
。。。。関数の数はF(N-)+ 1 = = N-N-N²+(1 + N-)/ 3 = 2 / +2n²3 / 2N + 1実装2
定数3.全てはF(N)=An²+アン与える置換基の一定の動作時間---------------->添加剤 + 1(aは定数)
4.ラン修飾回関数を唯一の最高次の項-------------> F.を得た(N-)=An²保持するの
5を最高次の項が存在しない1ならば、次いで乗じ定数項を削除します-最高次の項が存在する、しない1、定数Aが除去された------>
最終的に得られたO(N)=n²を、時間複雑度はn²あります

関数は、最初の実行回数を取得し、その後、O(n)を求めなければなりません。

O(1)<O(ログ(X))<O(X)<O(X *ログ(X))<O(X ^ 2)<O(x ^ 3)<O(2 ^ N)<O (N!)<O(N ^ N)

おすすめ

転載: blog.csdn.net/oqqWang1234567/article/details/100521000